mysql5.5以后数据类型选择

257 阅读2分钟

一、场景

在开发过程中;往往大家都要参与表结构的数据;当你设计表结构时,数据量又特别的大时;数据类型的选择往往是非常重要;如果表结构的类型选择错误;往往会给后面优化带来瓶颈。

二、如何选择

  • 2.1、常用数据类型:数字类型、日期类型、字符串类型
  • 2.2、数字类型
数字类型可用范围如下:

此图来源于【老齐的IT】截图

如:DECIMAL(18,9);占9个字节=整数4个字节+小数4个字节+小数据点1个字节;总长度18位=9位整数+9位小数。
  • 2.3、日期类型
  • DATETIME时间类型;占8个字节
  • 注意:不能使用字符串来存储时间类型
  • 2.4、字符串类型
VARCHAR与CHAR两种类型在开发中是最常见的;但是它们的又有怎么样的区别呢?在开发过程中要如何选择呢?
  • 2.4.1、VARCHAR特点
  • VARCHAR是变体长度;会根据实际的数据长度进行存储数据。
  • VARCHAR(255)长度;当实际数据长度小于或等于255时;会有一个额外的字节保存长度值。实际数据长度大于255时;会有两个额外的字节保存长度值
  • VARCHAR(3)和VARCHAR(10)使用的内存空间也是不一样的;
  • VARCHAR在修改数据时;数据长度不一样时;会出现锁表
  • 2.4.2、CHAR特点
  • CHAR是固定长度,最长是255;如CHAR(30);实际存储长度只有10;存储长度30;
  • CHAR会自动删除最后面的空格
  • CHAR检索效率比VARCHAR高;因为CHAR不会存在浪费空间

三、总结

使用类型优先级:数字类型>日期或者二进制类型>字符串