我已经读过(至少Oracle)数据库中的正常索引基本上是B树结构,因此存储处理适当根节点的记录.记录'小于'的根被迭代地存储在树的左侧部分,而记录'大于'的根被存储到右侧部分.正是这种存储方法通过树遍历有助于更快的扫描,因为深度和宽度减小了.
但是,在创建索引或对where子句进行性能调优时,大多数指南都会首先说明要考虑相等性的列的优先级(IN or = clause),然后单独移动到带有不等式子句的列.(NOT IN, <>).这个建议的原因是什么?如果使用树遍历来预测给定值不像预测给定值那样容易存在是否不可行?
索引不能用于否定吗?