首页 >数据库 >mysql教程 >如何修复 MySQL 的'行大小太大”错误?

如何修复 MySQL 的'行大小太大”错误?

Barbara Streisand
Barbara Streisand原创
2024-12-10 09:17:10781浏览

How to Fix MySQL's

如何修改MySQL行大小限制

当遇到错误“Row size Too Large (> 8126)”时,表示允许的最大行大小MySQL已经被超越了。要解决此问题,可以实施某些表设计注意事项和数据库配置调整。

建议

Stack Exchange 上提出的建议解决方案涉及修改 my.cnf 文件中的设置:

  1. 启用Barracuda文件格式:通过设置配置InnoDB使用Barracuda文件格式innodb_file_format=梭子鱼。这样就无需内联存储一部分 BLOB 数据,从而减少了行大小。
  2. 使用 ROW_FORMAT=COMPRESSED: 将表的行格式更改为 ROW_FORMAT=COMPRESSED。此格式通过应用压缩来减小 BLOB 数据的大小。

示例命令:

ALTER TABLE table_name
ENGINE=InnoDB
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;
  1. 回退到 MyISAM: 在如果上述措施不能解决问题,请考虑使用MyISAM作为内部数据的临时存储引擎。将以下行添加到 my.cnf 文件中:

    internal_tmp_disk_storage_engine=MyISAM

注意事项

  1. 查看表架构: 检查表的列及其数据类型。考虑将包含过多数据的列更改为 TEXT 或 BLOB。
  2. 使用动态或压缩行格式:表的 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 选项可以帮助优化数据的空间利用率- 大量行。
  3. 考虑分片:如果表包含大量数据,请考虑将其跨多个数据库或表分片。这将减少每个表中的行大小。

以上是如何修复 MySQL 的'行大小太大”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn