mysql 实数类型和字符串类型
mysql 实数类型和字符串类型
实数类型
float 和 double 类型支持使用标准的浮点运算进行近似计算。
decimal 类型用于存储精确的小数。mysql5.0 和更高版本,decimal 类型支持精确计算。
浮点类型在存储同样范围的值时,通常比 decimal 使用更少的空间,float 占 4 个字节,double 占 8 个字节。
尽量在对小数进行精确计算时才使用 decimal,比如存储财务数据。如果数据量比较大,考虑使用 bigint 类型代替 decimal。小数的位数乘以倍数来存储。
字符串类型
varchar
varchar 类型用于存储可变长字符串,比定长类型更节省空间
char
char 类型是定长的,char 适合存储很短的字符串,或者所有值都接近同一个长度。char 非常适合存储秘密的 md5 值,因为是定长的。定长的 char 类型不容易产生碎片,char 比 varchar 在存储空间更加有效率,char(1)存储只需要一个字节,varchar(1)需要两个字节,一个记录长度的额外字节。
blob
blob 存储很大的数据而设计的字符串二进制方式存储
text
存储很大的数据而设计的字符串字符方式存储
当 blob 和 text 值太大的时候,Innodb 使用专门的外部存储 区域来进行存储,每个值的行内需要 1 到 4 个字节存储一个指针,然后在外部存储区域存储实际的值。
blob 类型存储是二进制数据,没有排序规则或字符集,text 类型有字符集和排序规则
mysql 不能将 blog 和 text 列全部长度的字符串进行索引,也不能使用这些索引消除排序。
这就是 mysql 的实数类型和字符串类型的大体情况,灵活选择合适的数据类型,建好表字段,这样才能方便后期调优
版权声明: 本文为 InfoQ 作者【周杰伦本人】的原创文章。
原文链接:【http://xie.infoq.cn/article/89f34d983d0f6ff6f10f02adc】。文章转载请联系作者。
评论