欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql char,varcher,text的区别与选用原则_MySQL

程序员文章站 2022-03-22 23:43:15
...
bitsCN.com
mysql char,varcher,text的区别与选用原则 mysql中char,varchar,text有什么使用区别呢?先看看他们的共同点:都可以用来存储字符类型的数据。char,varchar都可以指定最大的字符长度,text不可以。 比如,username char(10) , weibo vachar(200)这是在定义表的时候使用。都可以定义最大的长度。 区别:以上面的语句为例,username是char类型的数据,最大字符长度为10个字符,如果输入不满10个字符时,后面会自动被填充空格,也就是说始终会占用10个字符的长度。如果内容被取出之后,后面的空格将被自动清除(即使存入是后面带有空格,取出之后也会不空格给去掉,例如“abcd ”,后面有两个空格,最后取出之后也空格就没有了'abcd') 而varchar类的是变长的,比如上例,200个最大长度,其中会有一到两个字节用来记录战用的长度。比如存进去100个字符,最后只会占有100个长度多一点(多的一连个记录占用空间的),而不是在后面补充空格占用所有长度。如果存进去后面有空格,那么后面的空格也会占用长度,取出之后空格还有事结果的一部分,这些是char和varchar之间的区别。 text主要是存储字符串,和varchar的长度相同,text不可以设置默认值,对索引的支持还不是很好或者就不支持。char的速度要比varhcar快速 使用原则:协调空间和时间的关系,以微博为例, 如果存储的是用户名的话,使用char,速度快,占用空间不是很大,空间使用率较高,比如最多10个字符,如果是存储微薄,有的用户微薄会占用100多个字符,而有的微薄最多占用10个字符,并且并不是每个用户只发一条微薄,如果使用char的话浪费率太高,空间浪费太大,使用text速度也跟不上,是用varchar比较好,空间是变长的,并且速度也算可以。现在的硬件的价格相对便宜,尽量让空间换时间,提高系统的效率与吞吐量,不过也要做到一定的度。需要根据具体情况具体分析考虑。 作者 com360 bitsCN.com