我主要是一名 Actionscript 开发人员,绝不是 SQL 专家,但有时我必须开发简单的服务器端东西。所以,我想我会问更有经验的人关于标题中的问题。
我的理解是,通过在将包含几个不同值的列中设置索引,您不会获得太多收益。我有一个包含布尔值的列(实际上它是一个小的 int,但我将它用作标志),并且该列用于我拥有的大多数查询的 WHERE 子句中。在理论上的“平均”情况下,一半的记录值为 1,另一半为 0。因此,在这种情况下,数据库引擎可以避免全表扫描,但无论如何都必须读取大量行(总行数/2)。
那么,我应该将此列设为索引吗?
作为记录,我使用的是 Mysql 5,但我更感兴趣的是为什么它会/没有意义索引一个我知道基数较低的列。
提前致谢。