【发布时间】:2014-12-16 20:08:04
【问题描述】:
我正在使用 MySQL 5.6 运行 XAMPP,并且我还通过 phpMyAdmin 访问 mySQL。
我有一个包含 250 列的表,它混合了 longtext、varchar 和 tinyint。
我所有的 varchars 都设置为大约 30 长度,tinyint 是 2 长度,其余都是长文本。
当我开始尝试使用大量文本更新某些行时出现以下错误。 (只比以前多了大约 200 个字符)
#1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
我已经到处寻找解决方案,但似乎没有任何效果。我已经增加了我的 innodb_buffer_pool_size 和 innodb_log_file_size 并重新启动了 mySQL 服务器,它似乎启动正常。
innodb_buffer_pool_size = 128M (originally was 16M)
innodb_log_file_size = 32M (originally was 5M)
但是,在尝试插入或更新包含大量文本的行时,我仍然遇到错误。
任何帮助将不胜感激。 :)
【问题讨论】:
-
您可能会考虑重组您的数据库。我记得有同样的问题,我们最终将表格分成多个表格,从而减少了每行的大小。考虑一下您在每次查询中需要哪些数据,以及在需要时只需
joined 即可。