mysql优化系列(十四)- mysql索引选择的原则

tech2022-09-07  105

学习目标:

掌握 mysql索引选择的原则,并进行相关实操

学习内容:

1、 联合索引结构与最左匹配原则 2、 mysql索引优先考虑的对象(重点) 3、 优化器的执行过程 4、 mysql索引的挑选原则(重点)


学习时间:

1、 周四早上 7点 — 早上8点 2、 周四晚上 9点 — 晚上10点半


学习产出:

1、联合索引结构与最左匹配原则

联合索引的结构=》多个字段的组合索引 例:idx_gender_city(gender,city) sex + city 联合索引 select … where city = ‘汕头’; (不会走联合索引)

覆盖索引特权很大,可以无视最左匹配原则 例:select count(*) from user where city = ‘汕头’; (会走索引)

2、 mysql索引优先考虑的对象(重点)

mysql对于索引使用的优先级

优先级 : 条件 > 分组 > 排序

面试小知识:索引是基于什么原则建立的?
面试官想得到的回答

注:字段一般是推荐重复比较少的字段影响到数据的检索,如果是项目需求(可建立联合索引) 1.唯一字段可以单独建立单索引,非唯一考虑联合索引,推荐尽量使用唯一字段建立索引 2.索引的个数,联合索引的个数 最佳 6个 以内,如果索引因为项目需求:最多 10个 3.索引的使用 遵循最左匹配原则其次覆盖 4.尽量选择小的字段建立索引 int ,varchar(10) => vachar(5) 5.避免<,<= ,> ,>= , % ,between 之前的条件 选择索引的字段的范围和模糊之前,因为范围与模糊会引起索引失效 针对于联合索引,就是联合索引的中间尽量不要有范围查询的字段 6.尽量多使用explain分析 7.避免更新频繁的字段 (二叉树会一直变化,导致性能变慢) 8.建立的索引- 优先考虑 建立 联合索引 9.索引字段不要有 null, 不是 ‘’ 哦!

总结:索引的使用尽量选择查询频率比较高的字段作为最左字段,优先考虑联合索引, 尽量查询可以去做到覆盖索引,索引字段需要比较小的字段 ,没事不要把范围查询放在联合索引,变得快的字段不建议建立索引
最新回复(0)