MySQL基本数据类型

目录

一,各类型特点

1.1.整数

1.2.实数(带有小数点)

1.3.TEXT、BLOB

时间1.4.日期

1.5.选择标识符


一,各类型特点

1.1.整数
  • TINYINT 8位 (-128 - 127)
  • SMALLINT 16位 (-32768 - 32767)
  • MEDIUMINT 24位 (-8388608 - 8388607)
  • INT 32位 大约正负21亿
  • BIGINT 64位
  • 可以用UNSIGNED修饰,表示无符号型整数,不允许出现负值,大致可以使正数的上限提高一倍
1.2.实数(带有小数点)
  • FLOAT 4个字节
  • DOUBLE 8个字节
  • DECIMAL最多允许65个数字
  • 示例:decimal(5,2),说明:5位长度,2位小数精度,如果整数部分+2位小数超长,则报错,如果只是小数部分超出2两位,则四舍五入到两位小数

1.3.字符串

  • CHAR
    • ·定长,msql根据定义字符串的长度一次分配足够的空间
    • 适用场景:较短的字符串,且所有值接近同一长度
  • VARCHAR 变长字符串
    •  比定长类型节约空间
    •  但是ROW_FOMAT=FIXED每行使用定长
    •  适用场景:字符串的最大长度比评估长度大很多,列的更新较少
    •  缺点:频繁修改,且字符串的长度变化大时,可能出现页分裂
    •  不要盲目的给过大的长度
    •  在临时表或排序时可能遭遇最大长度分配内存问题
1.3.TEXT、BLOB
  • TEXT存储字符数据
    • TINYTEXT
    • SMALLTEXT
    • TEXT
    • MEDIUMTEXT
    • LONGTEXT
  • BLOB存储二进制数据
    • TINYBLOB
    • SMALLBLOB
    • BLOB
    • MEDIUMBLOB
时间1.4.日期
  • datetime
    • 精度:秒
    • 与时区无关,8个字节存储空间
    • 范围:1001 至 9999 年
  • timestamp
    • 保存1970年1月1日午夜以来的秒数
    • 占用4个字节存储空间
    • 范围:1970年 至 2038年
    • 与时区有关
    • 默认为NOT NULL
    • 通常尽量使用timestamp
    • 精度:秒
  • date
    • yyyy-MM-dd
  • time
    • HH:mm:ss
1.5.选择标识符
  • 用来进行关联操作
  • 在其他表中作为外键
  • 整型通常是标识列的最好选择
  • 相关的表中使用相同的数据类型
  • 尽量避免字符串作为标识列,尤其是随机生成的字符串,(如:uuid)导致insert与select都很慢
    • 插入值被随机写到索引的不同位置,insert慢,容易导致页分裂,磁盘随机读取
    • 逻辑上相邻的行被分布在磁盘和内存的不同地方,select慢
    • 使mysql查询缓存失效
    • 如果需要存储uuid,则应将“-”去除
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值