优秀的编程知识分享平台

网站首页 > 技术文章 正文

索引失效的场景(索引失效的场景有哪些)

nanyue 2024-10-28 16:39:28 技术文章 4 ℃

1、where条件中有or关键字,在一个select语句中,索引只能使用一次,如果在where中使用,在order by中不要用

2、组合索引未用左列字段、组合索引中不能有列的值为null


3、where条件like以占位符(_或%开头)


4、where中索引列使用了函数


5、where中索引列使用了运算


6、查询条件中使用is not null 会导致索引失效

什么时候要使用索引?

  • 主键自动建立唯一索引
  • 经常作为查询条件在WHERE或者ORDER BY 语句中出现的列要建立索引
  • 作为排序的列要建立索引;
  • 查询中与其他表关联的字段,外键关系建立索引
  • 高并发条件下倾向组合索引;
  • 用于聚合函数的列可以建立索引,例如使用了max(column_1)或者count(column_1)时的column_1就需要建立索引

什么时候不要使用索引?

  • 经常增删改的列不要建立索引;
  • 有大量重复的列不建立索引;
  • 表记录太少不要建立索引。只有当数据库里已经有了足够多的测试数据时,它的性能测试结果才有实际参考价值。如果在测试数据库里只有几百条数据记录,它们往往在执行完第一条查询命令之后就被全部加载到内存里,这将使后续的查询命令都执行得非常快--不管有没有使用索引。只有当数据库里的记录超过了1000条、数据总量也超过了MySQL服务器上的内存总量时,数据库的性能测试结果才有意义。
最近发表
标签列表