mysql表设计主要类型知识总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本篇主要总结介绍mysql数据表设计时最常用的几个数据类型,整型,字符型,时间类型等的注意事项


一、关于数字类型需要注意什么?

常用数字类型,整型和高精度型

  • 关于整型INT,在设计表对某些字段使用Unsigned类型时,考虑到可能该字段在实现某些功能需要做差值,因此需要设置为
mysql> SET sql_mode='NO_UNSIGNED_SUBTRACTION';
  • 浮点类型 Float 和 Double,但这些类型因为不是高精度,也不是 SQL 标准的类型,所以在真实的生产环境中不推荐使用,否则在计算时,由于精度类型问题,会导致最终的计算结果出错。更重要的是,从 MySQL 8.0.17 版本开始,MySQL 提醒用户不该用上述浮点类型,甚至提醒将在之后版本中废弃浮点类型。
  • 针对格式固定的浮点类型,比如常见字段金额,默认精确到分,其也不建议使用DECIMAL(),因为高精度类不定长,不定长存储会有碎片问题,,性能不好,因此建议使用big int类型,其按分为最小单位存储,其定长8字节,存储更紧凑,存储性能更高。
  • 说到big int,其最常见使用是为自增id类型。但是自增有个坑是在mysql8.0之前,自增在数据库宕机时会有id回溯情况,因为自增id没有持久化,因此不推荐用自增id为主键。

二、字符型需要注意什么?

字符型:常用char和varchar:

  • CHAR(N) 和 VARCHAR(N) (N为字符长度)虽然分别用于存储定长和变长字符,但对于变长字符集(如 GBK、UTF8MB4),其本质是一样的,都是变长,设计时完全可以
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值