美文网首页数据蛙数据分析每周作业
mysql中查询不使用索引的情况

mysql中查询不使用索引的情况

作者: 米兔妮妮 | 来源:发表于2019-04-14 17:11 被阅读2次

索引,但用不上的情况:

在数据库表中,使用索引可以提高查询速度。但是索引并不是对所有的查询操作都会生效的。比如以下几种情况,将导致索引失效:

1、如果查询条件用or,必须or条件中的每个列都加上索引,否则无效。

2、对于复合索引(又叫多列索引或者联合索引),如果查询的列不使用复合索引的第一部分,则不使用索引。例如,tb表的复合索引为(key1,key2,key3),则查询select * from tb where key2=1 and key2>5将不会使用索引。

3、如果like是以%开头的,则该列上的索引不会被使用。例如:select * from tb where key1 like "%a"; 即使key1列上建立了索引,该查询也不会使用索引。

4、存在索引列的数据类型隐形转换,则不使用索引。例如:列key1的数据类型为字符串,select * from tb where key1=1; 将不会使用索引。要想使用索引,必须将字符串用引号印起来。

5、where字句里对索引列有数学运算或者使用函数,则不使用索引。

不推荐使用索引的情况:

1、数据唯一性差(一个字段的取值只有几种情况)的字段不要使用索引:

例如性别,只有两种可能数据。意味着索引的二叉树级别少,这样的二叉树查询无异于全表扫描。

2、频繁更新的字段不要使用索引:

例如login_count登陆次数,频繁变化导致索引也频繁变化,增大数据库工作量,降低效率。

相关文章

  • mysql中查询不使用索引的情况

    索引,但用不上的情况: 在数据库表中,使用索引可以提高查询速度。但是索引并不是对所有的查询操作都会生效的。比如以下...

  • mysql使用索引提高查询效率

    mysql单表中数据量到达一定数量后,查询效率会变得很低,使用索引可以有效地提高mysql的查询效率.但是索引使用...

  • mysql索引查询

    参考文档:explain命令mysql慢查询优化 一、主键和索引的区别 二、mysql查询时如何使用索引 三、ex...

  • MySQL 索引及查询优化总结-2018-03-20

    MySQL 索引及查询优化总结 文章《MySQL查询分析》讲述了使用MySQL慢查询和explain命令来定位my...

  • 走向DBA之不走索引的情况

    前文介绍了合理的设定和使用索引的好处,本篇介绍查询时不走索引的几种情况 一、没有查询条件,或者查询条件没有建立索引...

  • mysql查询到底用了组合索引的哪些字段

    工作中,我们常常使用到mysql的组合索引,但怎样判断mysql查询时,使用了组合索引的那些字段呢?最近从我司DB...

  • MySQL,必须掌握的6个知识点

    目录 一、索引B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化使用 ...

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • MySQL的隐式转换

    MySQL在什么情况下会产生隐式转换 当查询条件左右两侧类型不匹配的时候会发生隐式转换,可能导致查询无法使用索引。...

  • MySQL in 走不走索引?

    1. 连表查询或采用临时表会走索引 参考:解决MySQL中IN子查询会导致无法使用索引问题 2. 如果 in ...

网友评论

    本文标题:mysql中查询不使用索引的情况

    本文链接:https://www.haomeiwen.com/subject/pssswqtx.html