Mysql表设计规范
Redis
主键
海量互联网架构设计,主键,推荐字符串类型;
自增整型缺点:
- MySQL 8.0 版本前自增值并不持久化,重启时可能会有回溯现象;
- 暴露业务数据量
资金字段设计
推荐使用 BIG INT 来存储金额相关的字段;小数点交由前端处理展示,数据库按分存储。
优点:
- 定长字段,占用 8 个字节,存储高效。
- 直接通过整型计算,效率更高。
整型
MySQL 要求 unsigned 数值相减之后依然为 unsigned,否则就会报错。
数据库参数 sql_mode 设置为 NO_UNSIGNED_SUBTRACTION,允许相减的结果为 signed
索引
MySQL 优化器是 CBO(Cost-based Optimizer),所有查询基于成本而不是规则,若发现 SQL 执行计划发生变化,不要怀疑 MySQL 出错,请先分析数据特点、索引创建是否合理,是否可以通过直方图校准数据。