前面几篇博文谈到索引使用场景和explain命令帮助我们分析索引的执行情况,今天进入正题,来谈谈索引优化的原则。 查询语句尽量使用全值匹配。 如果一个索引是组合索引,索引了多列,要遵循左前缀原则,即查询从索引的左前缀开始,不能跳过索引中间的列。 操作包括:计算、函数、自动或手动的类型转换,不要在索引列上做上述任何操作,否则索引失效并转为全表扫描。 当组合索引中出现范围条件,那么该范围条件右边的列索引全部失效。因此在设计和使用索引时,应把经常进行范围查询的列作为索引的最右列。 在查询中少用select *,否则MySQL需要遍历结果列存在哪些字段。同时,应尽量使用覆盖索引,能避免二次查表。 在使用不等于(!= 或 <>)时,无法使用索引,导致全表扫描。 判断空值的查询条件索引失效,导致全表扫描。 查询条件like以通配符%开头,如 name like (“%abc”),索引失效,导致全表扫描。 先看看表中有哪些数据: 使用or来连接查询条件时,索引失效。1、全值匹配
2、左前缀原则
3、不要在索引列上操作
4、范围条件右边的列索引全失效
5、按需取数据,少用select *
6、避免使用 != 或 <>
7、避免is null 或 is not null
8、避免like以通配符开头
那么如果业务需要必须要用通配符%开头怎么办?答案是:使用覆盖索引
建立索引NAME和age的组合索引:
覆盖索引,生效:
非覆盖索引,失效:
9、少用or
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算