3
A
回答
4
如果某列的选择性非常低(即没有多少不同的值),那么查询优化器不太可能利用该列上的索引。
但是,说你有一个Active
柱(或几个不同值的其他列),以及广大的纪录活跃,短短数不活动(即Active
等于false
),然后用标准的查询WHERE Active = False
可能使用Active
列中的索引。 [对于SQL Server,分界点是行的约10%]
也有在游戏中多列索引其他启发式(取决于你RDBMS)
例如:SQL Server Indexing: Using a Low-Selectivity BIT Column First Can Be the Best Strategy(感谢达米安)
的SQL Server 2008年起,先后为数据子集创建'Filtered Indexes'的能力:
当一列只有相关值的查询少数 ,你 CA n在 值的子集上创建过滤索引。例如,当某列中的值大多为NULL 且查询仅从 非空值中选择时,可以为非空数据行 创建一个 过滤索引。生成的索引将为 更小,维护成本低于 在相同键列上定义的全表非聚簇索引 。
相关问题
- 1. Cassandra - 在具有许多唯一值的多列上索引
- 2. 涉及同一列的多个索引是否有用?
- 3. 检查一个数组是否具有不同于零的值
- 4. 具有重复值的列上的数据库索引
- 5. 具有不同行值的多列组
- 6. 加入数据框 - 一个具有多索引列,另一个没有
- 7. SQL - 查找某个列是否有多个不同的值
- 8. 具有多个允许值类型的数据库字段
- 9. 有数字的数据库列是否需要编制索引?
- 10. 搜索具有相同键和不同值的多个词典
- 11. 是否有可能写一个过滤索引的列值不是'X'?
- 12. 具有许多属性的类的IEqualityComparer既不是唯一值
- 13. 具有灵活索引的数据库?
- 14. Oracle数据库:具有NULL值的索引组织表(在多列主键中)
- 15. 检查数据库是否具有相同的值
- 16. 是否有一个具有类似git特质的数据库?
- 17. Django具有相同型号但数据不同的多个数据库
- 18. 如何合并具有不同列名的多个数据帧
- 19. 如何从一列中选择具有不同值的多列
- 20. 数据提供者的数据网格是否有可能具有不同数据提供者的一列?
- 21. 不允许多个空值在Access 2010多列索引中
- 22. 根据搜索值从2个表中选择具有相同值还是不具有相同值
- 23. 一个小工具类和多个小工具具有不同的数据
- 24. 从具有不同索引的另一个数据帧中添加熊猫数据帧中的新列
- 25. 有没有更好的方法来索引多列而不是为每个排列创建一个索引?
- 26. mysql搜索具有相同列值的多个值
- 27. 强制多个表在数据库中具有相同的列
- 28. 带有许多不同列表的UIPickerView
- 29. 不同类型的数据库索引?
- 30. 有许多不同的数据类型的好处是什么?
体面[article](http://sqlcat.com/technicalnotes/archive/2011/01/31/sql-server-indexing-using-a-low-selectivity-bit-column-first-can- be-the-best-strategy.aspx)关于在多列索引中具有低选择性* first *的相关主题。 – 2011-05-26 08:57:10