嗨,我想知道每个表允许不同存储引擎使用的最大列数和最大行大小。我搜索了mariadb网站文档,但找不到该信息。谢谢

最佳答案

当前形式的MariaDB仍然与MySQL足够接近,因此存在相同的限制。随着时间的流逝,MariaDB分叉可能会进一步分歧。

由于数据类型,存储引擎和元数据存储的差异,MySQL中每个表的最大列数的实际答案很复杂。抱歉,不仅有一个简单的答案。

正如@Manquer所引用的那样,每行绝对限制为64KB,但是BLOB / TEXT列不计入该限制。

InnoDB页面每页必须至少容纳两行,并且一个页面为16KB减去一些标题信息。因此,无论列数如何,该行必须为8000字节左右。但是VARCHAR / BLOB / TEXT列可能以有趣的方式溢出到其他页面。有关详细信息,请参见http://www.mysqlperformanceblog.com/2010/02/09/blob-storage-in-innodb/

但是,基于适用于所有存储引擎的.FRM元数据文件,甚至还有更多限制。它真的很复杂,请阅读http://www.mysqlperformanceblog.com/2013/04/08/understanding-the-maximum-number-of-columns-in-a-mysql-table/以获得有关它的详细信息和示例。这里有太多要复制的内容。

鉴于后一篇博客文章,我能够设计一个在59列处失败的表。

关于sql - mariadb每张表的最大列数是多少,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24275959/

10-16 15:21