索引不生效的具体场景

加索引能大大提高数据查询效率,这个在接口设计之出也会考虑到,这里不再多赘述,随着需求的迭代,我们重点整理一下索引不生效的一些场景,希望对小伙伴们有所帮助。

具体不生效场景不再一一举例,后面有时间的话,单独整理一下。

索引不生效的具体场景_第1张图片

 

 

索引不生效的具体场景很多,以下列举几个常见的情况:

  1. 数据量较小:如果表中的数据量较小,可能因为查询语句的优化器选择了全表扫描,而不在计算机系统中,索引常用于提高查找数据的速度,所以索引不生效通常是由于以下场景造成的:

  2. 索引列出现类型转换,如将字符串和数字进行比较,这会导致索引不生效。

  3. 使用了一些特殊的函数,如在 WHERE 子句中使用了不支持索引的函数,如:SUBSTRING、DATE_FORMAT、REGEXP 等,这也会导致索引不生效。

  4. 对于联合索引,如果在查询语句中没有使用到所有联合索引的列,那么索引也可能不会生效。

  5. 数据表中的数据过于分散,即某些索引列的数据分布比较松散,这种情况下,使用索引进行比较时可能需要扫描大量的数据页,也会降低索引的效率。

  6. 查询的数据量较少,这种情况下,使用索引的效果不一定比全表扫描要快。

这些情况可能导致索引不生效,造成查询速度变慢,对于这些场景,我们可以通过优化查询语句、增加索引、修改数据分布等方式来改善索引不生效对查询性能的影响。

你可能感兴趣的:(日常笔记,SQL,现实工作问题)