当前位置:   article > 正文

mysql索引命中率_MySQL – 之索引命中率 | it运维_it技术_linux运维-追梦人博客

索引命中率

前面我们介绍了:

今天来介绍下索引的命中率问题。

一、说明

前面介绍了MySQL的索引但是如何确保查询是走索引的哪?如果查询没有走索引那我们的索引创建的不是没啥意义了吗?

下面就来举例子说明,下面的操作中id和email为索引字段。

二、哪些查询是走索引的

2.1、link

数据量大的时候避免使用like(可以使用第三方工具),小的时候可以考虑(不会走索引)。

select * from tb1 where email like '%cn';

2.2、函数

使用函数的时候也不会走索引。

select * from tb1 where reverse(email) = 'wupeiqi';

2.3、or

查询时,where后的第一个条件是索引列,or 第二个条件不是索引列时,不会命中索引。

select * from tb1 where nid = 1 or name = 'seven';

补充:

当or条件中有未建立索引的列才失效,以下会走索引。

select * from tb1 where nid = 1 or email = 'seven';                    #两个都是索引列时会走索引

select * from tb1 where nid = 1 or name = 'seven' and email = 'alex'               #走索引,第一个和第三个条件是索引列时会走索引

2.4、类型不一致

如果列是字符串类型,传入条件是必须用引号引起来,不然...。

select * from tb1 where email = 999;           #类型不一致时不走索引

2.5、!=

select * from tb1 where email != 'alex'            #普通索引不会走索引

特别的:如果是主键,则还是会走索引

select * from tb1 where nid != 123           #主键还是会走索引的

2.6、>

select * from tb1 where email > 'zmr'           #普通索引不会走索引

特别的:如果是主键或索引是整数类型,则还是会走索引

select * from tb1 where nid > 123;              #主键还是会走索引的

select * from tb1 where num > 123;              #普通索引是数字的时候还是会走索引的

2.7、order by

select name from tb1 order by email desc;                #select后面加的关键字(不是索引)和order by后面的分类的关键字不是一致时不会走索引

当根据索引排序时候,选择的映射如果不是索引,则不走索引

特别的:如果对主键排序,则还是走索引:

select * from tb1 order by nid desc;        #order by后面加的主键时会走索引

2.8、组合索引最左前缀

如果组合索引为:(id,name,email)

id and email      #使用索引

id and name       #使用索引

id and name and email           #使用索引

name         #不使用索引

email        #不使用索引

name and email        #不适用索引

2.9、其他性能相关

避免使用:select *

count(1)或count(列) 代替: count(*)

创建表时尽量时 char 代替 varchar #尽量用定长,将定长(char)的字段往前放,变长(varchar)的放后面

组合索引代替多个单列索引(经常使用多个条件查询时)

尽量使用短索引:如果一个字段的值中有相同的字符串,那么就可以创建局部索引(把不相同的字段创建索引即可);

使用连接(JOIN)来代替子查询(Sub-Queries) #MySQL中这两个的类别不大,sql server里是有差别的

连表时注意条件类型需一致:查询的条件要一样,数据类型也要一样

索引散列值(重复少)不适合建索引,例:性别不适合

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/493896
推荐阅读
相关标签
  

闽ICP备14008679号