索引数据会加快通过mysql搜索吗?

时间:2017-04-30 05:25:41

标签: mysql indexing

在mysql中,如果一个列有两个状态且一个结果很少,我们应该为这个列构建索引吗?

例如,性别栏有男性和女性,女性是少数。如果我们经常搜索女性数据,建立一个性别指数会加快吗?

1 个答案:

答案 0 :(得分:1)

这个问题没有明确的答案,这取决于多种因素。

一般理论是,不应将具有低基数的列编入索引。在实践中,它不是黑白的。在布尔列上添加索引有时会大大减少SELECT时间。

问题是:

  1. 你桌上有很多记录吗?如果是,添加索引将减少INSERT / UPDATE / DELETE次数。

  2. 男性和女性之间的重新分配是什么?如果55/45,索引不会有多大帮助。如果80/20使用索引搜索20%的女性会更快。

  3. 您如何查询您的男性/女性?如果大部分时间使用其他因素,那么请考虑在您的性别+其他(s)列上添加综合索引

  4. 您的唯一方法是测试。创建索引并查看是否有帮助