MySQL 中最大行大小的问题

Mem*_*pan 8 mysql

我的 MySQL 有问题,我有一个包含许多文本字段的表。当我尝试存储一些数据时,出现此错误。

行大小太大。所用表类型的最大行大小(不包括 BLOB)为 8126。您必须将某些列更改为 TEXT 或 BLOB

我在每个字段中存储的文本不会太长,每个字段只有几段。

我能做什么?

Mem*_*pan 9

谢谢回答的人。您发布的链接是开始学习的非常有用的基础。

最后我找到了这个页面:http : //download.oracle.com/docs/cd/E17952_01/refman-5.5-en/innodb-compression-usage.html

我配置了 my.cnf 在[mysqld]部分中添加了这两行:

innodb_file_per_table
innodb_file_format = Barracuda
Run Code Online (Sandbox Code Playgroud)

然后我ALTER通过 phpMyAdmin 使用此命令创建我的表:

ALTER TABLE nombre_tabla
 ENGINE=InnoDB
 ROW_FORMAT=COMPRESSED 
 KEY_BLOCK_SIZE=8; 
 SHOW WARNINGS;
Run Code Online (Sandbox Code Playgroud)

也可以使用您可以在上面的链接中阅读的其他设置,但这些对我来说很有用。


kor*_*man 1

好吧,按照 mysql 所说:将大字段从 varchar 转换为文本或 blob(ALTER TABLE)。文本字段的行为与 varchar 非常相似(索引需要前缀长度,但仍然有效),但单独存储。

该参考资料告诉您每个库存 mysql 表引擎的确切限制:

http://dev.mysql.com/doc/refman/5.0/en/column-count-limit.html

以下是有关文本字段的所有信息:

http://dev.mysql.com/doc/refman/5.0/en/blob.html