(1).全职匹配:
(2).最佳左前缀原则:如果查询了多列,查询应该从索引的最左前列开始并且不要不要跳过索引中的列
(3).不在索引上做任何操作(计算,函数,类型转换(自动或手动)),否则会导致索引失效而转向全表扫描
(4).存储引擎不能使用索引中范围条件右边的列
(5).尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少或避免select *
(6).mysql在使用不等于(!=或者<>),is null,is not null 的时候无法使用索引会导致全表扫描
(7).like以通配符开头(like "%abc")会导致索引失效,但是百分号结尾不会(like "abc%"),解决like "%"开头的可以使用覆盖索引解决
(8).字符串不加引号会导致索引失效
(9).少用or,用它来连接会导致索引失效
(10).使用group by需谨慎,因为分组之前必先排序,有可能会导致临时表的产生
10. sql优化步骤:先找到查询慢的sql(通过慢查询日志抓取超过一定时间的sql)->explain分析sql->优化索引与查询语句->如果问题还没解决,使用show profile查看sql执行的资源消耗情况,然后如果sql已经最优,判断是否mysql服务器问题,根据情况调整相关参数。
MySQL索引与优化
标签:mysq 数据 顺序 复合 索引 返回 参数 部分 基础