1、 联合索引结构与最左匹配原则 2、 mysql索引优先考虑的对象(重点) 3、 优化器的执行过程 4、 mysql索引的挑选原则(重点)
1、 周四早上 7点 — 早上8点 2、 周四晚上 9点 — 晚上10点半
联合索引的结构=》多个字段的组合索引 例:idx_gender_city(gender,city) sex + city 联合索引 select … where city = ‘汕头’; (不会走联合索引)
覆盖索引特权很大,可以无视最左匹配原则 例:select count(*) from user where city = ‘汕头’; (会走索引)
优先级 : 条件 > 分组 > 排序
注:字段一般是推荐重复比较少的字段影响到数据的检索,如果是项目需求(可建立联合索引) 1.唯一字段可以单独建立单索引,非唯一考虑联合索引,推荐尽量使用唯一字段建立索引 2.索引的个数,联合索引的个数 最佳 6个 以内,如果索引因为项目需求:最多 10个 3.索引的使用 遵循最左匹配原则其次覆盖 4.尽量选择小的字段建立索引 int ,varchar(10) => vachar(5) 5.避免<,<= ,> ,>= , % ,between 之前的条件 选择索引的字段的范围和模糊之前,因为范围与模糊会引起索引失效 针对于联合索引,就是联合索引的中间尽量不要有范围查询的字段 6.尽量多使用explain分析 7.避免更新频繁的字段 (二叉树会一直变化,导致性能变慢) 8.建立的索引- 优先考虑 建立 联合索引 9.索引字段不要有 null, 不是 ‘’ 哦!