MariaDB能支持的最大记录数是多少?

8

最多支持多少条记录(大部分是数字数据,在一个表格中每个记录的大小不超过1KB,最多只有5/6个字段)?


这个问题最好在dba.stackexchange.com上提问,因为它与编程无关。通常,mysql/mariadb表的可用大小取决于运行服务器的系统的限制,而不是数据库服务器本身。 - JNevill
2个回答

10

模式限制

  • InnoDB 表最多只能有 1,017 列,包括虚拟生成列。
  • InnoDB 表最多只能有 64 个二级索引。
  • InnoDB 上的多列索引最多只能使用 16 列。如果尝试创建一个使用超过 16 列的多列索引,则 MariaDB 返回错误1070。

大小限制

  • 除变长列(即VARBINARY、VARCHAR、BLOB 和 TEXT)以外,InnoDB 中的行最大长度大约为4KB、8KB、16KB和32KB页大小的一半。
  • BLOB 和 TEXT 列的最大大小为 4GB。LONGBLOB 和 LONGTEXT 也是如此。
  • MariaDB 对所有列的组合大小设定了一个行大小限制,其最大值为65,535字节。如果表包含 BLOB 或 TEXT 列,这些列仅在此计算中占9-12个字节,因为它们的内容是单独存储的。
  • 32位操作系统具有最大文件大小限制为2GB。当使用此架构处理大型表时,请配置 InnoDB 使用较小的数据文件。
  • 结合 InnoDB 的日志文件的最大大小为512GB。
  • 对于表空间,最小大小为10MB,最大大小取决于 InnoDB 页面大小。

页面大小

使用innodb_page_size系统变量,您可以配置InnoDB页面的字节大小。页面默认为16KB。对于使用此变量的方式有一定的限制。

  • 使用一个页面大小的MariaDB实例不能使用来自使用不同页面大小的实例的数据文件或日志文件。
  • 使用4KB或8KB的页面大小时,最大索引键长度将成比例降低。

您可以在官方文档中了解更多信息。


9

一个InnoDB表的限制为64TB;这可能允许在一个表中有640亿行。对于数据库中的表的数量以及MariaDB实例中数据库的数量,基本上没有限制。

如果您对表进行PARTITION,那么限制会进一步提高,可能会达到万亿行。这是因为每个分区本质上都是一个单独的表。

关于限制的更多信息:http://mysql.rjweb.org/doc.php/limits 大多数限制在当前硬件上任何现实的应用都不会达到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接