背景
今天线上出现一个问题,文本太长,而数据库中的字段长度不够,导致内容被截断。
于是,很容易想到解决办法,修改字段长度呗,但出乎预料的是,遇到了以下报错:
Execute failed | Execute: Error 1118: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs.
原因:
mysql属于关系型,行式数据库, 规定单行长度不能超过65535,如需存储超过65535长度的数据,则需使用TEXT或BLOB,这里所说的字段长度指的是,一条记录所有字段的长度之和。
解决:
正常的解决方案是,修改字段类型为text或blob, 但因为具体的业务场景,此次仅是将该字段在允许范围内稍微加大了些