我是一个SQL新手,但这是我迄今为止收集的索引:
对具有太多不同值的列进行索引可能会适得其反,因为它需要更长时间遍历索引并一次检索一些记录,而不是直接从表中执行。
病理案例如(1)除外,索引总是以较慢的INSERT,UPDATE等为代价提高SELECT语句的速度。
我的问题是:
答案 0 :(得分:2)
可能情况恰恰相反。具有很少不同值的列不是索引的良好候选者。通常,优化程序将评估使用索引的成本与完整扫描的成本。然后,优化器将选择成本最低的访问
如果您没有更新表,那么索引不应该是一个惩罚,除了可能的磁盘空间。但是,仅仅因为存在索引,并不一定意味着它将被使用;如上所述。