龙空技术网

区分度不高的字段就不能建索引了?我就经常建。#MySQL

程序员Hollis 132

前言:

而今朋友们对“mysql哪些字段不适合建索引”大致比较讲究,大家都想要知道一些“mysql哪些字段不适合建索引”的相关文章。那么小编同时在网络上收集了一些有关“mysql哪些字段不适合建索引””的相关文章,希望同学们能喜欢,朋友们快快来学习一下吧!

谁说区分度不高的字段就不能建索引了?

区分度不高的字段,建索引一定没用吗?当你看到这句话的时候你大概就会想,你既然都这么问了,应该是不一定。但是你就开始怀疑不要给区分度不高的字段建索引。确实有很多人告诉我们因为区分度不高,所以没有办法发挥索引的效果。

但是如果有一种特殊情况,比如男女比例是95:5,如果我用女作为性别查询的条件,如果能命中索引其实是能大大的提升性能的。可以过滤掉大部分的数据,任务表当中用的比较多,比如说任务表当中通常有两种,比如说init和success。

其实大多数情况下任务的状态都是success的,只有一少部分失败的那种处于init,我们就可以给这个字段加个索引。这样当我们基于init做扫表重试的时候,还是可以大大的提升查询效率的。

但是也需要注意,索引的创建是需要占用空间的,并且后期数据的变更,对索引的维护也是有成本的。所以在使用的时候,千万不要无脑加索引。

标签: #mysql哪些字段不适合建索引