java踩坑日常——数据库索引失效
发布时间:2020-12-15 07:33:57 所属栏目:Java 来源:网络整理
导读:我们常见的几个索引失效场景,大致有以下几种: 1、String型数据使用int直接查 2、like ’%a‘的情况 3、组合索引a,b单独使用b 4、命中数据过多到时扫描全表 5、索引列中有计算或者使用了函数 6、a=‘x‘ or b=‘y‘,此时a有索引但是b无索引 ? 最近遇到的
我们常见的几个索引失效场景,大致有以下几种: 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值就该有变化。
此处问题原因存疑。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |