900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > mysql的char和varchar_MySQL中CHAR和VARCHAR的区别及应用场景

mysql的char和varchar_MySQL中CHAR和VARCHAR的区别及应用场景

时间:2023-10-22 18:40:48

相关推荐

mysql的char和varchar_MySQL中CHAR和VARCHAR的区别及应用场景

VARCHAR和CHAR是两种最主要的字符串类型。它们的存储方式和数据检索方式都不一样。

VARCHAR和CHAR的数据检索效率:CHAR > VARCHAR

VARCHAR类型

VARCHAR类型用于存储可变长字符串,是最常见的字符串数据类型。它比定长类型更节省空间,因为它仅使用必要的空间。

VARCHAR类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。VARCHAR节省了存储空间,所以对性能也有帮助。

但是,由于行是变长的,在UPDATE时可能使行变得比原来更长,这就导致需要做额外的工作。

CHAR类型

CHAR类型用于存储定长字符串,CHAR字段上的索引效率级高。比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。CHAR值会根据需要采用空格进行填充以方便比较。

应用场景

VARCHAR类型适用于文章标题、商品名称、图片路径等字符串最大长度大于平均长度的列。

CHAR类型适用于存储密码的MD5值、手机号码、身份证号码、订单号等长度相对固定的列。

总结

该字段数据集的平均长度与最大长度是否相差很小,若相差很小优先考虑CHAR类型,反之,考虑VARCHAR类型。

若字段存储的是MD5后的哈希值,或一些定长的值,优先选取CHAR类型。

若字段经常需要更新,则优先考虑CHAR类型,由于CHAR类型为定长,因此不容易产生碎片。

对于字段值存储很小的信息,优先选取CHAR类型,因为VARCHAR类型会占用额外的字节保存字符串长度信息。

当能够选取CHAR类型的时候,或者说空间消耗相对并不是影响因素的重点时,尽量选取CHAR类型,因为在其他方面,CHAR类型都有着或多或少的优势。而当空间消耗成为了很大的影响因素以后,则考虑使用VARCHAR类型。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。