03 Schema 设计规范
Data:
2022-03-18 07:27:40Form:
JournalClick:
10
Schema 设计指的是对数据表的的设计
Schema 设计的目标:可用性、好用性(预见未来、较高性能)
设计原则:
- 数据库、表、列只用小写英文(mysql大小写不敏感、数字与特殊字符不利于性能);
- 名称取有意义的名称,单词用下划线连接,名称必要过长,最长不要超过 32 个字符;
- “够用且尽量小” 的原则,使用占用空间最小的类型;
- 不要用物理外键(使用数据库关联表与表的关系)消耗资源 且 母表损坏将全部丢失。
- 表一定要有主键,方便增删改查的定位
- 保证字符集一致,统一为 utf8 或 utf8mb4,避免乱码
- 表越多数据库压力越大,丢失后破坏也更大,一个库种表不要超过100张表
- 数据构建前有规划性,窄表(40列以内)较多的数据库,数据分散,关联查询难度大,不便于管理;宽(40列以上)表安全性差,导致不同敏感度的数据列过于集中,且数据多时占空间大,降低性能。
- 建立索引只建立需要索引条件的字段,全部建立索引将降低数据修改性能;建立唯一性比较高的字段为索引列;联合索引存在 “最左前缀” 的特性,不要建多余的索引。(如果一张表中已经存在了大量的数据,再去创建索引的过程会相当漫长,且可能会影响线上服务。此时,应该评估是否是在原表上增加索引还是创建新表并迁移数据。)