`

索引在什么情况下会失效

 
阅读更多

1. 对于创建的多列索引(复合索引),不是使用的第一部分就不会使用索引

       alter table student add index my_index(name, age)   // name左边的列, age 右边的列 

       select * from student where name = 'aaa'     // 会用到索引

       select * from student where age = 18          //  不会使用索引

2. 对于使用 like 查询, 查询如果是 ‘%aaa’ 不会使用索引,而 ‘aaa%’ 会使用到索引。 

      select * from student where name like 'aaa%'     // 会用到索引

       select * from student where name like '%aaa'        或者   '_aaa'   //  不会使用索引

3. 如果条件中有 or, 有条件没有使用索引,即使其中有条件带索引也不会使用,换言之, 就是要求使用的所有字段,都必须单独使用时能使用索引

4. 如果列类型是字符串,那么一定要在条件中使用引号引用起来,否则不使用索引。

5. 如果mysql认为全表扫面要比使用索引快,则不使用索引。

 

      如:表里只有一条数据。

————————————————

版权声明:本文为CSDN博主「uweii」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/dummyo/article/details/84194086

分享到:
评论

相关推荐

    MySQL中有哪些情况下数据库索引会失效详析

    降低DML性能,对于数据的任意增删改都需要调整对应的索引,甚至出现索引分裂 索引会产生相应的碎片,产生维护开销 一、explain 用法:explain +查询语句。 id:查询语句的序列号,上面图片中只有一个select 语句...

    数据库深入浅出MySQL SQL优化:原因、定位、分析与索引失效

    本文将围绕为什么要进行SQL优化、如何找到慢SQL、如何分析SQL、回表与索引的概念以及什么情况下会造成索引失效等方面进行讲解。 对MySQL进行SQL优化是提高数据库性能的关键。通过找到慢SQL、分析SQL、合理使用索引,...

    MySQL_思维导图(全面).xmind.zip

    资源包括:1、mysql的架构介绍;2、索引优化分析;3、查询优化分析;4、mysql锁机制;...以及如何建立高效的索引、索引在哪些情况下会失效、生产环璋下,如果进行sql问题排查及优化。属于非常干货的内容。

    SQL Server索引在实际应用中的研究.pdf

    在SQL Server中,默认情况下会在主键上建立聚集索引,但是主键通常是一个自增ID,它的值是自动生成的,并且在实际查询中很少被用来直接搜索数据。因此,将主键作为聚集索引可能是对聚集索引资源的一种浪费。 2. 在...

    sql优化、索引的建立和运用以及多表连接建索引的拙劣见解

    - `NOT IN`在某些情况下会导致索引失效。 - 示例:`SELECT * FROM A WHERE A.id NOT IN (SELECT B.id FROM B);` - 更优方案:`SELECT * FROM A WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.id = A.id);` #### 多...

    Mysql性能调优专题.zip

    8. **索引合并详解**:MySQL在某些情况下会使用索引合并策略,将多个单个索引的扫描合并为一个查询。了解何时以及如何使用这一策略可以进一步提升性能。 9. **全局理解MySQL性能优化**:从架构师的角度,性能优化...

    数据库优化方案

    全表扫描会导致数据库对整个表的所有数据行进行检查,这在数据量大的情况下会消耗大量的时间和资源。因此,优化查询语句是提升数据库性能的关键措施之一。 索引优化是数据库优化中非常重要的一个方面。索引能够帮助...

    数据库常用面试题目_基础题

    - 在什么场景下会选择关系型数据库(如MySQL),什么场景下会选择非关系型数据库(如MongoDB)? 2. **关系型数据库理论** - 什么是ACID特性?它们分别代表什么? - 请解释范式理论,第一范式到第三范式是如何...

    数据库优化原则

    - 游标虽然灵活,但在某些情况下会降低性能。可以通过临时表等方式替代游标,以提高查询效率。 #### 三、总结 通过上述原则和技术的应用,我们可以有效提升数据库的性能。值得注意的是,SQL优化不仅局限于应用...

    SQL语句优化技术分析

    这种形式的LIKE操作符由于其模糊匹配特性,在某些情况下会导致全表扫描,从而降低查询效率。因此,对于LIKE操作符的优化至关重要: 1. **避免前导通配符**:尽量避免使用如`LIKE '%abc'`或`LIKE '%abc%'`这样的前导...

    MySQL慢SQL语句常见诱因以及解决方法

    在没有索引的情况下,数据库必须进行全表扫描来定位数据,这在数据量大的情况下会显著降低查询速度。因此,合理地为数据库表字段创建索引是提升查询性能的重要手段。不过,即使建立了索引,也可能因为查询条件未命中...

    大厂面试系列二.pdf

    快速排序的时间复杂度在平均情况下为O(nlogn),但在最坏情况下会退化为O(n^2)。为了提升性能,快速排序的优化通常包括使用尾递归优化、选择合适的枢轴元素、使用三数取中法等。 在进行IO操作时,IO多路复用可以有效...

    software engineering advice from building large-scle distributed systems

    4. **容错机制**:鉴于硬件故障是不可避免的,设计时应充分考虑容错机制,确保系统能够在部分组件失效的情况下继续运行。 5. **多数据中心部署**:为了提高可用性和响应速度,需要在全球范围内部署多个数据中心。 6....

    2021-2022计算机二级等级考试试题及答案No.13261.docx

    "1,234,456"在某些地区设置下会被识别为1234456,但在标准的数值输入中,逗号是不推荐使用的。 3. 时间复杂度与空间复杂度:算法的时间复杂度和空间复杂度是衡量算法效率的两个重要指标,它们之间没有直接的关系。...

    性能测试规范及调优完全手册

    - **压力测试**:持续增加负载直至系统出现异常行为或崩溃,目的是发现系统在何种条件下会出现性能问题。 **2.2 配置测试** 配置测试旨在评估不同硬件和软件配置对系统性能的影响。通过更改硬件配置(如CPU型号、...

    Windows 7媒体库音视频文件实现局域网共享.docx

    - 当媒体文件的名称或路径发生改变时,媒体库的索引记录将会失效,需要更新媒体库信息以保持最新状态。 ##### 2.2 设置媒体库选项 - 在开始菜单中运行Windows Media Player (WMP),选择“转至媒体库”,查看导入...

    操作系统实验报告-实验九.docx

    `.`和`..`分别代表当前目录和父目录,通常在`ls`不带参数或使用`-l`时不显示,但在`-a`选项下会显示。 3. **文件与目录的删除**: 使用`rm`命令删除文件,`rmdir`用于删除空目录。当尝试删除非空目录时,需使用`...

    Android Webview重定向问题解决方法

    当用户按下回退键时,正常情况下会从D回退到C。但通过`WebBackForwardList`,我们可以在D页面上直接跳转回B页面,然后在下次回退时回到A页面,实现了定制的回退路径。 总的来说,解决Android WebView重定向问题的...

    vue.js中$set与数组更新方法

    在你的示例中,`arr1`的值最终也会更新,尽管这不是预期的行为,这可能是由于Vue在某些情况下会对整个数组进行重新渲染。 总结来说,为了确保数组变化能够正确反映到视图中,你应该使用`Vue.set`、`vm.$set`或者...

Global site tag (gtag.js) - Google Analytics