数据库设计之字符串类型的选择

mysql中字符串常用的数据类型为char, varchar, text 三种类型, 三种类型有什么区别呢。

1、 char长度固定, 即每条数据占用定长字节空间,最大255字节,设置多长就分配多少存储空间, 有可能造成空间浪费,存储的时候会截断尾部的空格,适合用在身份证号码、手机号码等定长数据。

2、 varchar可变长度,最大为65535字节, 适合用在长度可变的属性, 存储小于255字节时会花费1字节存实际使用了多大的长度, 大于255字节时会花费2字节存实际使用了多大的长度。

3、 text不设置长度, 最大为65535字节, 当不知道属性的最大长度时,适合用text, 主要特性是没有默认值。


按照查询速度: char最快, varchar次之,text最慢。但是当超过255的长度之后,使用varchar和text没有本质区别,只需要考虑一下两个类型的特性即可。(主要考虑text没有默认值的问题)

那如何规定个数据类型的长度呢, 这里的定义的数据长度是字符的长度, 不是字节的长度, utf-8编码一个汉字3字节, varchar类型最大可以存储(65535-2)/3个汉字, 如果utf-8mb4编码的话一个汉字4字节,最大可以存储(65535-2)/4个汉字。

text也是同理。


所以我们在选择的时候要注意以下原则:

经常变化的字段用varchar

知道固定长度的用char

尽量用varchar,能用varchar的地方不用text

超过255字节的只能用varchar或者text


网友评论

5条评论

发表

网友评论

5条评论

发表

最新评论

11月30日 15:35

11月29日 23:39

11月29日 22:35

11月29日 19:52

11月29日 17:40

推荐文章

彩龙

Copyright © 2008-2019 彩龙社区(http://www.clzg.cn) 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP