Row size too large
2016-09-06 10:07
363 查看
转自:http://www.2cto.com/database/201303/193422.html
更新text字段时出现Row size too large报错
起因:
团购开发报告说更新时出错。
www.2cto.com
更新SQL如下:
UPDATE table_name d SET d.column_name='aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
WHERE d.ID=100976;
报错信息如下:
Error Code : 1118
Row size too large. The maximum row size for the used table type,
not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
疑惑:
更新字段只涉及 column_name字段,且该字段是TEXT类型。
www.2cto.com
个人之前理解是:
TEXT的内容在 Dynamic的table format下是存在off-page中的,不会
占用row size的计算。
Barracuda 对应row_format ( dynamic, compress) ,其中dynamic下text
的所有内容都是off-page存放的
Antelope 对应row_format (compact, redundant),其中compact下的text
是存786B在row中,超过部分存在off-page
而服务器配置是 innodb_file_format = Barracuda
照理说所有table用的都是 dynamic 结构。
但是! 原因如下,摘自文档:
To preserve compatibility with those prior versions, tables created with
the InnoDB Plugin use the prefix format, unless one of ROW_FORMAT
=DYNAMIC or ROW_FORMAT=COMPRESSED is specified (or implied)
on the CREATE TABLE command.
也就是说,建表时不显示指定 row_format = dynamic ,即使 innodb_file
_format = Barracuda 表的row-format还是 compact
所以总结为一句话就是:如果某个表的text字段很多建议建表时加上
row_format = dynamic
更新text字段时出现Row size too large报错
起因:
团购开发报告说更新时出错。
www.2cto.com
更新SQL如下:
UPDATE table_name d SET d.column_name='aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
WHERE d.ID=100976;
报错信息如下:
Error Code : 1118
Row size too large. The maximum row size for the used table type,
not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
疑惑:
更新字段只涉及 column_name字段,且该字段是TEXT类型。
www.2cto.com
个人之前理解是:
TEXT的内容在 Dynamic的table format下是存在off-page中的,不会
占用row size的计算。
Barracuda 对应row_format ( dynamic, compress) ,其中dynamic下text
的所有内容都是off-page存放的
Antelope 对应row_format (compact, redundant),其中compact下的text
是存786B在row中,超过部分存在off-page
而服务器配置是 innodb_file_format = Barracuda
照理说所有table用的都是 dynamic 结构。
但是! 原因如下,摘自文档:
To preserve compatibility with those prior versions, tables created with
the InnoDB Plugin use the prefix format, unless one of ROW_FORMAT
=DYNAMIC or ROW_FORMAT=COMPRESSED is specified (or implied)
on the CREATE TABLE command.
也就是说,建表时不显示指定 row_format = dynamic ,即使 innodb_file
_format = Barracuda 表的row-format还是 compact
所以总结为一句话就是:如果某个表的text字段很多建议建表时加上
row_format = dynamic
相关文章推荐
- Row size too large (> 8126). Changing some columns to TEXT or BLOB ...
- MySQL Row size too large (> 8126) 以及ROW_FORMAT=COMPRESSED requires innodb_file_format > Antel 的解决办法
- ERROR 1118 : Row size too large. The maximum row size for the used table type
- mysql错误:Row size too large (> 8126).
- Mysql 导入psc 文件时,数据列过多,提示Row size too large(>8126)
- Row size too large. The maximum row size for the used table type 解决
- MySql “Row size too large (> 8126)”
- mysql触发器应用和创建表错误代码: 1118 Row size too large. 解决
- [MySQL 错误]ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not
- mysql 报错:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65
- [MySQL 错误]ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not
- MySql 5.6异常处理: Row size too large (> 8126)
- Mysql_大字段问题Row size too large.....not counting BLOBs, is 8126.
- Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You
- 更新text字段时出现 Row size too large 报错
- ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting B
- Row size too large (> 8126)
- ERROR 1118 (42000): Row size too large (> 8126).
- ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting B
- Mysql [Err] 1118 - Row size too large