关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

Mysql数据类型

发布时间:2023-06-26 14:00:08

Mysql的数据类型

  • 如何选择数据库的数据类型
    • 数据类型尽量简单
    • 数据类型尽量的小
    • 数据类型的值尽量不为Null

整数数据类型

  • 整数数据类型
    • TINYINT:数据长度为8位
    • SMALLINT:数据长度为16位
    • MEDIUMINT:数据长度为24位
    • INT:数据长度为32位
    • BIGINT:数据长度为64位
      • 整数数据类型可选属性:UNSIGNED(表数据非负数,可以将正数的值扩大两倍)
  • 整数数据类型的范围为-2^(n-1)至2^(n-1)-1;n为数据长度

实数类型

  • 实数数据类型
    • 指带有小数部分的数字
    • DECIMAL:一般用于高精度计算;拥有比(浮点类型)(FLOAT,DOUBLE)更高的精度,但是性能一般也弱于浮点类型
    • DECIMAL(n,m):指允许有n位正数,m位小数
    • 一般说浮点不适合精度计算,是因为如果超过对应的长度,会发生截断处理
    • 一般为了解决精度问题以及DECIMAL性能问题,采用BIGINT缩放来处理数据计算

字符类型

  • 字符数据类型
    • VARCHAR:可变长度的字符集
      • VARCHAR相比于CHAR节省空间,但是更加只使用自身所需要的数据长度;
      • 配置ROE_FORMAT=FIXED属性会导致VARCHAR定长
      • VARCHAR需要1至2个额外字节记录字符长度
      • 由于VARCHAR是变长的,所以在UPDATE时,需要做额外的工作,对性能具有一定的影响;也有可能会导致碎片
    • CHAR:定长字符集
      • CHAR类型总会分配固定的空间,CHAR会删除末尾的空格,也会采用空格填充的方式补足长度
      • 对于定长类型,其性能优于VARCHAR

BLOB、TEXT数据类型

  • BLOB类型:采用二进制存储很大的字符串类型的数据
  • TEXT类型:采用字符的方式存储很大的字符串数据
  • BLOB、TEXT类型:
    • BLOB没有排序规则、字符集;TEXT有排序规则、字符集
    • 当BLOB、TEXT很大时,会在行内生成指针指向存储具体值的外部地址

日期、时间类型

  • DATETIME:精度为秒,与时区无关,使用8个字节的存储空间,格式为(YYYYMMDDHHMMSS,2008-01-16 22:37:08)
  • TIMESTAMP:存储了标准格林兰时间的秒数,使用4个字节的存储空间,与时区有关
  • 一般情况下,使用TIMESTAMP作为时间存储的单位,因为空间效率更高
  • 如果需要使用比秒更小的时间单位,则可以使用BIGINT、DOUBLE存储时间;也可以使用MariaDB替换MySQL

/template/Home/leiyu/PC/Static