#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs
这个问题表示在MySQL中,表的一行数据大小超过了最大限制65535字节。这通常是因为表中的某些字段过长导致的。下面是一些解决方法:
-
调整字段类型:将一些较大的字段改为
TEXT或BLOB类型。这些类型的存储方式不同于普通字段,可以避免占用过多的行内空间。 -
拆分字段:如果某个字段包含多种信息,考虑将其拆分为多个字段来减少单个字段的大小。
-
优化数据类型:检查所有字段的数据类型是否为最优选择。例如,对于字符字段,确保没有使用比实际需要更大的字符集。
-
使用分区表:如果表非常大,可以考虑使用分区表来分散数据,从而减小每个分区表的行大小。
-
检查索引和外键:有时候过多的索引或复杂的外键关系也会增加行开销。确认是否所有索引都是必要的。
-
查看存储引擎限制:不同的存储引擎有不同的行大小限制。InnoDB默认限制为65535字节。如果当前引擎无法满足需求,可以考虑其他存储引擎。
-
增加列定义中的
NULL属性:如果某列允许为空,指定NULL而不是NOT NULL可以节省一点空间。
执行上述操作后,可能需要重新创建表或者迁移数据,请谨慎操作并备份数据。

扫码添加技术【解决问题】
专注企业网站建设、网站安全16年。
承接:企业网站建设、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HTML、网站被黑、网站漏洞修复等。
专业解决各种疑难杂症,您有任何网站问题都可联系我们技术人员。
本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18445747

浙公网安备 33010602011771号