`

索引在什么情况下失效

    博客分类:
  • SQL
阅读更多

 

为了保证索引的有效性,最好在大数量下测试

1 如果mysql使用全表扫描要比使用索引快,则不使用索引 (所以如果实际测试中发现索引没生效,很可能是全表扫描和使用索引的效率差别不大)

 

2 如果查询条件 字段类型是字符串,则要加上引号,否则索引会失效

select * from table_emp  where id !=1   应改为id!='1

 

3 如果在查询条件(建了索引)中用了or,则索引不生效(这就是尽量少用or的原因),如果使用了or,还想索引生效,则需要将or条件中的每个列都加上索引

select * from table_emp  where id !=1 or name !='阿三'  需要为name建立索引

 

4 like 查询以 '%'开头

select * from table_emp where name like '%阿'   索引失效  ('阿%'索引有效)

 

5 对于多列索引,没有使用第一列,则不会使用索引 alter table table_emp add index sy(name,age,score); 

索引sy就为多列索引,多列索引在以下几中情况下才能有效: 

a) select * from table_emp where name='jia' and age>='12' //where条件中含有索引的首列字段和第二个字段 

b) select * from table_emp where name='jia' //where条件中只含有首列字段 

c) select * from table_emp where name='jia' and score<60//where条件中含有首列字段和第三个字 

 

mysql索引类型  普通索引normal ,唯一索引unique,全文索引full text

 

主键都是唯一性索引

 

查询条件一般设置为普通索引

0
2
分享到:
评论

相关推荐

    导致索引失效的口诀.pdf

    导致索引失效的口诀 数据库索引是一种提高查询效率的重要手段,但是如果不正确使用索引,可能会导致索引失效...导致索引失效的原因有很多,需要我们在使用索引的时候,充分考虑这些因素,避免索引失效,提高查询效率。

    索引失效-浅谈MySQL索引失效(组合索引).pptx

    自己整理有关MySQL的索引失效相关的信息,重点在组合索引的失效,有兴趣可以看看,看看是否对你有些许帮助

    oracle索引失效的总结

    然而,在实际的应用过程中,由于多种原因可能会导致索引失效,从而影响系统的性能。本文将详细介绍Oracle索引失效的一些常见原因,并提供相应的解决策略。 #### 1. 使用函数或表达式对列进行操作 当在WHERE子句中...

    唯一非聚集索引变量传入时索引失效解决方案

    这样,在某些情况下,查询优化器可以选择使用新的非聚集索引,而不会影响`Mac2`字段的唯一性。这样就能够在保证数据完整性的同时,提高查询效率,而无需在每个查询中都指定`option (recompile)`。 总结来说,解决...

    MySQL索引失效的11种情况.docx

    ### MySQL索引失效的11种情况 #### 知识点概述 在MySQL数据库中,索引是非常重要的优化工具之一,它可以显著加快数据...同时,对于一些特殊情况下的索引失效,可以通过调整查询语句、优化数据库设计等方式来解决。

    MySQL索引面试题+索引优化+索引失效

    在面试过程中,常常会涉及到MySQL索引的相关问题,包括索引的原理、优化技巧以及索引失效的原因等。 首先,MySQL索引是一种数据结构,用于快速定位和访问数据库中的数据。它通过创建索引列和索引对象来实现,可以...

    Mysql数据库索引创建、索引删除、索引失效场景详解

    索引的失效场景包括:更新或删除索引列,使用不带索引的全表扫描操作,使用`SELECT *`而不是明确列出索引列,使用`NOT IN`、`&lt;&gt; ALL()`或`NOT EXISTS`等操作,以及在`WHERE`子句中使用了函数或表达式。此外,索引也...

    mysql-实用-索引失效和优化原则

    mysql-实用-索引失效和优化原则

    SQLserver索引失效举例.txt

    SQLserver索引失效举例.txt

    ORACLE索引失效解决方法

    当某张表建立时间比较长以及该表频繁的进行插入,更新操作时,将出现索引失效问题。

    mysql 索引失效详解

    MySQL 索引失效详解 MySQL 索引是一种加快数据检索速度的数据库对象。索引可以大幅度提高查询效率,但是如果不正确使用索引,可能会导致索引失效。索引失效是指MySQL 不能使用索引来加速查询,导致查询效率下降。 ...

    mysql索引失效.docx MySQL索引失效是指在查询执行过程中,数据库无法有效地使用索引来提高查询性能

    这种情况下,即使查询条件与索引列完全一致,也仍然可能因为数据类型不匹配而导致索引失效。 **示例**:假设表中有一列为`char(10)`类型,而索引建立在`int`类型上,当执行如下查询时: ```sql SELECT * FROM ...

    oracel 分区表索引失效的问题

    ### Oracle 分区表索引失效的问题 #### 一、全局索引与分区表的关系 **全局索引**(Global Index)是指索引覆盖整个表的所有数据,而不受限于分区边界。这种类型的索引通常用于非分区列或者跨分区查询。 **实验...

    导致MySQL索引失效的一些常见写法总结

    在MySQL数据库中,索引是一种重要的优化手段,它能够显著...以上就是关于导致MySQL索引失效的一些常见情况及其避免方法。在实际工作中,我们需要结合具体业务场景和查询需求,合理设计和使用索引,以提高数据库性能。

    MySQL索引失效的几种情况汇总

    理解这些索引失效的情况有助于避免在编写查询时犯错误,从而提高数据库的查询性能。在设计数据库和编写查询语句时,应尽量遵循最佳实践,考虑索引的使用和优化,以确保能充分利用索引带来的性能提升。

    数据库索引失效的几种情况

    然而,尽管索引在多数情况下能提升查询效率,但存在一些情况可能导致索引失效或无法充分利用: 1. **OR条件**:当查询条件中包含多个字段使用OR操作符时,即使其中某些字段有索引,MySQL也可能不会使用这些索引。...

    MySQL数据库索引失效的10种场景.zip

    然而,有时我们可能会遇到索引失效的情况,这可能导致查询性能急剧下降。本篇将详细探讨10种可能导致MySQL数据库索引失效的常见场景,帮助你理解和避免这些问题。 **1. LIKE操作符的不当使用** 在查询语句中,如果...

    mysql索引失效的五种情况分析

    本文将深入分析MySQL索引失效的五种常见情况,并提供相应的优化建议。 首先,当查询语句中包含`OR`操作符时,即使部分条件涉及了带有索引的字段,MySQL也可能选择不使用这些索引。这是因为`OR`操作符的查询优化相对...

    Mysql索引会失效的几种情况分析

    索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:  1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)  注意:要想使用or,又想让索引生效,只能将or条件中的每个...

Global site tag (gtag.js) - Google Analytics