首页 > 开发 > MySQL > 正文

char 和 varchar

2017-09-08 09:11:53  来源:网友分享

1. 没有达到char的指定长度,系统会自动补充空格么?我google了下,看到两种答案,有的说会,有的说不会...有办法测试么这?

2. varchar 中的每个数据会用一定的空间去存储数据长度信息,这个空间是1字节还是1到2个字节呢?

解决方案

第一个问题:

CHAR一定会自动补齐空格。

不过query返回结果的时候,mysql会自动去掉CHAR字段多余的padding,所以一般感觉不到padding的存在。具体细节详见mysql官方文档 http://dev.mysql.com/doc/refman/5.6/e... ,这个细节从5.0到5.6都没有变过。

第二个问题:

官方文档是这么说的:

L + 1 bytes if column values require 0 – 255 bytes, L + 2 bytes if values may require more than 255 bytes

这个细节从5.0到5.6也没有变化过。

文档链接: http://dev.mysql.com/doc/refman/5.6/e...