varchar(n)中的n为什么要设的尽量小

主要原因有两个:
1、MySQL的一个Row的不包含Text和Blob的最大长度是65535。
如:你建一个表,存在这样两个字段:varchar(35000), varchar(48000)是无法创建的。会得到如下提示:
错误代码: 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。


2、在进行排序和创建临时表一类的内存操作时,会使用n的长度申请内存。

如:varchar(5)和varchar(100)相比,后者申请的内存近似是前者的20倍。

发布了55 篇原创文章 · 获赞 5 · 访问量 22万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章