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

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

Susan Sarandon
Susan Sarandon原创
2024-12-08 17:46:11573浏览

How Can I Fix MySQL's

调整 MySQL 对超大数据的行大小限制

错误消息“Row size Too Large (> 8126)”表示 MySQL 表中的一行超出了默认 8KB 限制。导致此问题的因素有很多,包括表列中使用的数据类型。

一种潜在的解决方案是将某些列更改为 TEXT 或 BLOB 数据类型,因为这些可以容纳更大量的数据。此外,使用 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 还可以通过以更有效的方式存储数据来帮助减小行大小。

但是,提供的错误消息表明,即使进行了这些修改,行大小仍可能太大。这是因为 InnoDB 存储引擎将 BLOB 数据的前 768 字节内联存储在行内,进一步限制了行大小。

要解决此问题,请考虑实施以下解决方案:

  1. 切换到 Barracuda 文件格式:

    • 将以下内容添加到 my.cnf文件:

      • innodb_file_per_table=1
    - This file format removes the issue of storing BLOB data inline, allowing larger rows to be accommodated.
  2. 使用ROW_FORMAT=COMPRESSED:

    • 执行以下查询来更改表结构:

      • ALTER TABLE table_name
        ENGINE=InnoDB
        ROW_FORMAT=COMPRESSED
    - This setting reduces the row size by compressing non-key columns, potentially resolving the issue.

如果上述解决方案仍然无法解决问题,请考虑通过将以下行添加到 my.cnf 暂时切换到 MyISAM 引擎来存储临时数据文件:

internal_tmp_disk_storage_engine=MyISAM

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

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