Column length too big for column ‘remark‘ (max=65535)解决办法

        今天遇到了 Data truncation: Data too long for column 'response' at row 1 。表的字段不够长。所以就修改了表结构。然后就尽量开始扩充表结构。就遇到了Column length too big for column 'remark' (max=65535)这个问题。

      主要原因是MYSQL的限制

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

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

latin1字符集1个字母占据1个字节。

gbk字符集1个汉字占据2个字节

utf8字符集1个汉字占据3个字节

然后当我把字段改成text时,又报了The used table type doesn't support BLOB/TEXT columns。存储引擎不支持TEXT

然后把存储引擎由MEMORY改成MyISAM就可以了

这里我比较了下三种存储引擎

特征InnoDBMyISAMMEMORY
事务支持不支持

不支持

存储64TBfrmMYDMYIfrm文件+数据内存
空间
内存
插入速度
外键支持不支持不支持

InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。 

MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。

MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。不支持TEXT、BLOB等大字节存储。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RedEric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值