首页 > 数据库技术 > 详细

java踩坑日常——数据库索引失效

时间:2019-09-27 00:54:28      阅读:115      评论:0      收藏:0      [点我收藏+]

我们常见的几个索引失效场景,大致有以下几种:

1、String型数据使用int直接查

2、like ’%a‘的情况

3、组合索引a,b单独使用b

4、命中数据过多到时扫描全表

5、索引列中有计算或者使用了函数

6、a=‘x‘ or b=‘y‘,此时a有索引但是b无索引

 

最近遇到的应该属于4中的一种特殊情况——dba报sql慢查,我们看了查找字段有索引,表数据60W左右,explain看查询字段in数量为9走索引,10扫全表。一直字段distinct值大概15w左右。

苦思无果后,使用show index from查看表索引,发现是cardinality有问题,只有38.。。联系dba进行analyze操作,再次explain问题解决。

但是按理说满足以下两个条件之一,cardinality值就该有变化。

  • 表中1/16的数据已发生变化
  • stat_modified_counter>2000000000

此处问题原因存疑。

 

java踩坑日常——数据库索引失效

原文:https://www.cnblogs.com/fbw-gxy/p/11595093.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!