MySQL 中 VARCHAR(100) 和 VARCHAR(10) 的区别是什么?
MySQL 中 VARCHAR(100) 和 VARCHAR(10) 的区别是什么?
回答重点
两者的区别就是能存储的字符串长度上限不同,字符数上限是由定义中的括号内的数字决定的。
- VARCHAR(100) 最多可以存储 100 个字符。
- VARCHAR(10) 最多可以存储 10 个字符。
两者存储相同字符串时占用的空间是一样的。除了存储字符本身外,还需要额外的 1 或 2 个字节来记录字符串的长度。对于长度小于 255 的字符串,使用 1 个字节;对于长度 255 及以上的字符串,使用 2 个字节。
虽然存储的空间一样,但是在查询时,即带上 SORT、ORDER 这些字段时,VARCHAR(100) 字段会使得查询所占用的内存空间更多,因为在排序相关内存分配时,它是按照固定大小的内存块进行保存,VARCHAR(100) 的内存块会大于 VARCHAR(10)。
扩展知识
Comments