char和varchar的区别是什么?
例子:char(8)和varchar(8)的区别
- char(8)是固定长度的,如果给了一个6位的字符串,那么后两位会用空格补位
- varchar(8)不是固定长度,如果给了一个6位的字符串,那么实际存到硬盘上的就是6位
讨论:为什么要这么设计呢?
很多人会说,既然能用varchar动态的存取,看起来十分节省空间,那么为什么要有char的存在呢?
据个人了解,char的索取速度会相对于varchar快很多。因为char的存储空间是固定长度的,所以在索引的时候不需要考虑下一个元素的长度是多少,在计算地址的时候节省了很多时间。
(个人拙见,欢迎讨论,以后会补充更多的讨论)