- 列是唯一的,或有唯一约束(alibaba 规范指出只要是唯一的必须加索引,哪怕是多列组合是唯一的也要添加一个多列索引)
- 频繁作为 where 条件的字段
- 经常 group by 或 order by 的字段(对 select 结果集再次索引才能再次得到一个最终结果集)
- distinct 字段
- update,delete 的 where 字段(效果非常明显)
- 连接查询的 where 和 on 字段
- 字符串字段索引使用前缀索引
7.1 前面一部分作为索引,不要让整个字符串作为索引(alibaba规范强制要求)
7.2 问题是取多长?区分度来指定长度,公式: count(distinct left (列名,索引长度))/count(*)
- 区分度高(散列性高)的适合作为索引(性别区分度就比较低,不适合),一般超过 33% 就可以认为区分度比较高。反之区分度低的列(低于10%)不适合创建索引
- 联合索引,频率最高的放左边(最左匹配)
- 联合索引效率高于单列索引
- 每个表索引数量不超过 6 个
- 不建议无序的列作为索引(页分裂,比如不建议 UUID 作为主键)
posted @
2023-05-17 15:41
CyrusHuang
阅读(
10)
评论()
编辑
收藏
举报