mysql 调优-索引建议

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