一个值只有0和1的字段,到底要不要建索引?

关于数据库索引的所有文章,都会告诉你不要对这种字段建索引。

但这些文章不会告诉你的一个事实是:

如果表里面这个字段的值分布极度不均匀的情况下,而且你需要查询分布较少的记录的话,索引就非常有用了

举个例子,假设表中有一千万条记录,某个状态为0的记录总数大概会有100条,那么你想查询状态为0的记录时,有没有索引影响非常大,而查询状态为1的记录,则索引基本无用。如果两种状态的记录数相差无几的话,索引也基本无用。

所有的关于索引的文章,建议你不要为这种字段建索引的依据,都是以值分布是均匀为前提的。但如果值分布不均匀的时候,这个建议就不一定是正确的了。当我们需要查询的记录恰好是分布较少的记录的时候,值分布越是不均匀,索引就越有价值!

现在大家明白了这种字段的索引到底要不要建了吧。

转载:

https://www.cnblogs.com/xuanbg/p/9473049.html

原文地址:https://www.cnblogs.com/sunice/p/9474057.html