美文网首页
条件中有索引字段,为什么没有使用索引

条件中有索引字段,为什么没有使用索引

作者: 十毛tenmao | 来源:发表于2021-07-03 23:50 被阅读0次

数据库查询时,有时候会遇到猫慢查询,但是分析的结果却很奇怪,明明查询条件中是有索引的,但是查询却没有走

- 一种常见情况是数据库根据数据统计信息,判断不走索引会比索引效率更高,比如索引区分度不够

- 如果查询条件中在索引列上执行了函数操作,MySQL 认为会改变索引的顺序关系,所以也会放弃索引。所以不能在索引列上执行函数操作,可以修改为对where中的值进行函数操作,然后与索引比较

- 不能有隐式类型转换,比如索引字段是字符类型,条件是数字,也会把字符类型转换为数字然后比较

- 隐式字符编码转换,数据库在字符对比时,会站进行编码统一然后再对比

相关文章

  • 条件中有索引字段,为什么没有使用索引

    数据库查询时,有时候会遇到猫慢查询,但是分析的结果却很奇怪,明明查询条件中是有索引的,但是查询却没有走 - 一种常...

  • 30种 SQL 语句优化,进阶必备(二)

    11 在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用...

  • MySQL影响查询效率的因素

    条件字段使用函数操作 索引字段使用函数操作后,无法使用索引的快速定位功能(树搜索功能),但优化器并未放弃使用索引,...

  • 举例说明哪些情况下索引会失效?

    如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引...

  • 联合索引

    索引 索引的使用 什么时候使用索引表的主关键字 表的字段唯一约束 直接条件查询的字段 查询中与其它表关联的字段 查...

  • (转载)联合索引优化多条件查询

    转载自:联合索引优化多条件查询 联合索引是由多个字段组成的组合索引。若经常需要使用多个字段的多条件查询(WHERE...

  • 58-MySQL索引优化与查询优化-ORDER BY和GROUP

    一、排序优化(ORDER BY) 1、在WHERE条件字段上加索引,但是为什么在ORDER BY字段上还要加索引?...

  • 索引原理-索引使用技巧

    使用索引时机 1.哪些情况需要创建索引 1).主键自动建立唯一索引;2).频繁作为查询查询条件的字段应该创建索引;...

  • Mysql问题汇总2

    1 索引失效的几种情况? 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)注...

  • SQL优化

    1.负向条件查询不能使用索引 2.数据区分度不大的字段不宜使用索引 前导模糊查询不能使用索引 在属性上进行计算不能...

网友评论

      本文标题:条件中有索引字段,为什么没有使用索引

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