美文网首页
数据库索引不起作用的场景分析

数据库索引不起作用的场景分析

作者: Sunnky | 来源:发表于2017-12-05 17:42 被阅读0次

在数据量比较多时,建立合理的索引能降低数据查询的时间,但有些情况下,索引不一定会起作用

无法使用索引的select语句
1.对索引列使用了函数,如:
select * from tb where max(id)=100

2.对索引列使用了'%xx',如:
select * from tb where id like '%1'
需要注意的不是所有使用like关键字的select 语句都无法使用索引,比如
select * from tb where id like '1%'就可以使用索引

3.在where子句中对列进行类型转换(其实也是使用到了函数)

4.在组合索引的第1列不是使用最多的列,如在下面3个查询语句中建立组合索引,按顺序包含col2,col1,id列;

select * from tb where id='1' and col1='aa'
select id,sum(col1) from tb group by id
select * from tb where id='2' and col2='bb'

则第一句和第二句无法使用到索引 所以需要注意组合索引的顺序

5.在where 子句中使用in关键字的某些句子
当在in关键字后面使用嵌套的select语句,将无法使用在该列上定义的索引
如:
select * from tb where id in (select id from tb where ....)
这样可以用到索引
select * from tb where id in('1','2')

相关文章

  • 数据库索引不起作用的场景分析

    在数据量比较多时,建立合理的索引能降低数据查询的时间,但有些情况下,索引不一定会起作用 无法使用索引的select...

  • (102)mysql优化之使用索引优化查询

    概述 索引是数据库优化中最常用的也是最重要的手段之一。该篇看看索引的分类,使用场景,不能使用的场景等。 索引分类 ...

  • MySQL索引类型

    概述     今天为大家详细介绍一下数据库的几种索引类型、使用方式和场景。 1、普通索引     最基本的索引,它...

  • 腾讯 WXG 后台开发工程师对 MySQL 索引知识点总结

    知其然知其所以然!本文介绍索引的数据结构、查找算法、常见的索引概念和索引失效场景。 什么是索引? 在关系数据库中,...

  • Mysql 优化提纲

    SQL & 索引 通过慢日志找到待优化的SQLs; explain 查询分析SQL执行计划; 索引优化; 数据库结...

  • 数据库复习指南

    索引分析工具:explain 数据库优化。表很大之后,insert变得很慢,如何优化? 缓存; 分库分表; 索引;...

  • MySQL数据库索引选择使用B+树

    为什么MySQL数据库索引选择使用B+树? 在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小...

  • mysql的聚簇索引与非聚餐索引

    mysql的建表一般要建索引,那索引与数据的结构是怎样的呢?这很重要,清楚它能解决一些场景问题。 数据库索引相当于...

  • 数据库优化:运算后的列,不能使用索引

    一、确认数据库索引信息 二、 实际场景 查询语句中,存在运算符。实际运算后的列,不能使用索引 2.1 确认“ se...

  • 数据库 - 索引

    索引 索引 索引的建立对于数据库的高效运行是很重要的。索引可以大大提高数据库的检索速度。 索引分单列索引,组合索引...

网友评论

      本文标题:数据库索引不起作用的场景分析

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