我尝试创建一个表,并得到“行大小太大”错误。没问题,我只是将一些大型 VARCHAR 字段更改为 TEXT,并且它起作用了。但现在我不知道我离行大小限制有多近。如何确定表的最大行大小?
MySQL 版本:5.5。
我尝试创建一个表,并得到“行大小太大”错误。没问题,我只是将一些大型 VARCHAR 字段更改为 TEXT,并且它起作用了。但现在我不知道我离行大小限制有多近。如何确定表的最大行大小?
MySQL 版本:5.5。
这取决于您使用的存储引擎和为该表选择的行格式,以及您的索引。很难计算,因为数据库能够不断改变其结构。
但是VARCHAR、TEXT和BLOB都是变长数据类型,它有一个length属性,但是值可以为空;计算可能不准确。看看中的Avg_row_length
字段information_schema.tables
。
编辑:看看:数据类型存储要求。
MySQL 文档中有一些关于行大小限制的粗略指南可能会有所帮助。
请记住,字节和字符是不等价的。UTF-8 类型表中的AVARCHAR(255)
将被视为每个字符超过一个字节。默认情况下保留三个字节。