mysql-数字类型:自增主键踩坑

1. 不推荐使用整形设置unsigned 若非使用参数 sql_mode 务必额外添加上选项 NO_UNSIGNED_SUBTRACTION;

  unsigned的字段当聚合计算的时候当出现负数的时候会报错,如果不加上面的参数时

2. 自增整形类型做主键建议使用bigint 

  因为int最大范围42亿 范围对一般业务来说还是小 

3. mysql8.0之前自增类型在mysql会有回溯的情况

  举例: 自增整形主键3 先delete 然后插入新的值时主键会是4,这时不发生回溯,当删除3之后重启mysql 再插入主键仍是3

4. 当自增整形主键达到最大值时再添加会报重复错误 

  推崇在大业务量的情况下主键使用字符串

5. 不要使用float/double 后续版本会不支持

6. 账户余额等字段使用bigint 不使用decimal

  decimal是一个变长字段,金额不统一范围很大,不好统一

  decimal是通过二进制实现的编码计算效率不如整型

  bigint可以存储千兆级别的数值

  bigint定长性能好

原文地址:https://www.cnblogs.com/isnotnull/p/14721732.html