架构师必会-阿里巴巴SQL规范解读MySQL索引篇
索引强制规范一:唯一索引
- 业务上具备唯一特性的字段,即使是组合字段,也必须建立成唯一索引。
解读
1.唯一索引虽然影响插入速度,但针对于互联网大数据量高并发量的数据存储场景来说,
插入的影响可以忽略不计,查询效率的提升是主要矛盾;
2.应用层的唯一检查是不够的;
索引强制规范二:模糊搜索规范
- 禁止左模糊或者全模糊查询;
- 如果有相关业务需求,必须走搜索引擎方案解决;
基于性能考虑,左模糊或者全模糊 无法使用索引
索引强制规范三:varchar
- 没有必要对过长的varchar全字段建立索引;
- varchar字段上的索引必须指定索引长度;
- 索引长度可参考文本区分度,索引长度N可用count(distinct left(column, N))/count(*)来测试;
解读
基于性能考虑;
索引强制规范四:join
- 超过三个表时,禁止join;
- 需要join的字段,数据类型必须绝对一致;
- 被关联的字段必须要有索引;
解读
1. 针对于互联网大数据量高并发量的数据存储场景来说,join对性能的潜在影响较大;
2. 数据类型不对,没有索引,对性能的潜在影响较大