美文网首页
mysql数据类型的选择

mysql数据类型的选择

作者: 木语沉心 | 来源:发表于2020-11-10 11:27 被阅读0次

    一 数据类型分类

    通常,我们会将 MySQL 的数据类型分为四类,即字符串日期 / 时间数值二进制。显然,根据这些分类的名称可以知道

    1. 字符串类型:以 char、varchar、text 为代表,用于存储字符、字符串数据
    2. 日期 / 时间类型:以 date、time、datetime、timestamp 为代表,用于存储日期或时间,这种数据类型也是比较难抉择的
    3. 数值类型:以 tinyint、int、bigint、float、double、decimal 为代表,用于存储整数或小数
    4. 二进制类型:以 tityblob、blob、mediumblob、longblob 为代表,用于存储二进制数据,适用场景最为受限

    对数据类型的分类并不是绝对的,这取决于对存储数据的限制程度。例如对于数值类型又可以再去细分为整数型(int、bigint 等)、浮点型(float、double 等)、定点型(decimal 等)。所以,并不需要把过多的精力花在类型分类上,更多的是应该搞清楚这些类型怎么用,又为什么这样用。

    NOTE: liniux服务商查看数据类型的解释可以使用 help命令 such:help tinyint;

    常用数据类型解读

    1. 字符串类型

    • char: char 数据类型用于定义一个固定长度的字符串,长度范围处于 1 ~ 255 bytes之间,
      对于长度不固定的数据列,使用 varchar 就是最合适的。例如:姓名、邮箱地址等等。

    • varchar: 可变长度的字符串, 0-65535 bytes

    • tinytext、text、mediumtext、longtext
      它们都属于变长字符串,最大的区别是存储空间的不同
      tinytext:最大长度是(2^8 - 1)个字符
      text:最大长度是(2^16 - 1)个字符
      mediumtext:最大长度是(2^24 - 1)个字符
      longtext:最大长度是(2^32 - 1)个字符

    2 日期 / 时间类型

    • datetime 取值范围是 ‘1000-01-0100:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。它是最常见,用途最广的数据类型。例如:存储数据插入时间、订单完成时间等等。

    3 数值类型

    3.1 整数类型

    主要支持 5 个整数类型:tinyint、smallint、mediumint、int、bigint。这些数据类型我们基本上认为它们有共同的特性,不同之处只在于存储空间,即存储数值的取值范围。

    3.2 浮点类型

    float、double、decimal

    • decimal 被称为定点数据类型,由于它保存的是精确值,所以它通常用于精度要求非常高的计算中,另外MySQL 自身实现了对 decimal 的高精度计算。底层存储方面,MySQL 将 decimal 类型的数字使用二进制字符串存储,每 4 个字节可以存储 9 个数字

    4 二进制类型

    • tityblob:最大支持 255 字节
    • blob:最大支持 64KB
    • mediumblob:最大支持 16MB
    • longblob:最大支持 4GB

    相关文章

      网友评论

          本文标题:mysql数据类型的选择

          本文链接:https://www.haomeiwen.com/subject/fmadbktx.html