报错:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. 

mysql属于关系型,行式数据库, 规定单行长度不能超过65535一点都不过分。 你想当你超过65535后, 查询的iops怎么撑得住。

某表已存在100个字段,在新增3个字段时,报如下错误

经排查发现MySQL默认规定一条记录的最大长度不能超过65535。

(1)单个字段如果大于65535,则转换为TEXT 。

(2)单行最大限制为65535,这里不包括TEXT、BLOB。

所谓单行最大限制指的就是一张表中所有字段的所设置的长度不得超过65535字节,

例如一个表中有三个varchar字段长度30000,那么这个表的单行长度为:30000*3=90000,

大于65535则报错不能建表,这里乘以3是因为数据库用的utf8编码,3个字节表示一个字符。
 

本次处理方式:新增一张表。

备注

1、注意大表根据业务垂直拆分

2、注意控制字段长度,不要随意设置

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐