当前位置:  数据库>mysql

更新text字段时出现Row size too large报错应付措施

    来源: 互联网  发布时间:2014-10-07

    本文导语:  起因: 团购开发报告说更新时出错。 更新SQL如下: 代码如下: UPDATE table_name d SET d.column_name='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' WHERE d.ID=100976; 报错信息如下: Error Code ...

起因:
团购开发报告说更新时出错。

更新SQL如下:
代码如下:

UPDATE table_name d SET d.column_name='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
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类型。

个人之前理解是:
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
当然,回过头来MySQL的报错也是有误导性的,bug库中也对confirm了这个bug(点击查看),并在5.1.61中优化了报错提示。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c#多线程更新窗口(winform)GUI的数据
  • Fedora 的更新包有必要更新么?
  • Windows7 更新操作步骤
  • ubuntu 更新信息存放位置?
  • Android 自动更新Demo
  • Cheney程序更新管理器
  • 怎么才能够更新数据库?
  • 关于linux 的项目更新问题??
  • Java 应用自动更新框架 Jupidator
  • fedora 11更新时出现的问题 iis7站长之家
  • 内存数据更新问题
  • centos5 今天的新的更新有必要吗?
  • Google自动更新程序 Omaha
  • 关于JTable自动更新数据的问题
  • 紧急求救!怎样用update更新指定的一行数据!
  • 如何监视数据变更,并及时更新显示好?
  • 下载的lINUX是有版本更新次数限制?
  • 关于文件更新日期(急)
  • 请问Ubuntu Linux 怎么实现离线更新呢?
  • libreoffice 更新问题!
  • 集群服务器下相同文件夹下文件同时更新


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3