【发布时间】:2011-07-23 16:47:20
【问题描述】:
最近我了解了索引的神奇之处,并且性能有了显着提高。但是,根据我所学到的一切,我似乎无法找到这个问题的答案。
索引很棒,但为什么不能只索引所有字段以使表格变得异常快呢?我确信不这样做是有充分理由的,但是在一个有 30 个字段的表中三个字段怎么样? 10 在 30 领域?应该在哪里划线,为什么?
【问题讨论】:
-
尝试将一个值插入到具有超过 10k 个索引条目的表中,由于插入/删除,所有条目都必须更新,如果每个值,这是一个巨大的时间开销和一些内存开销有一个索引
-
除了空间和写入性能之外还有一个原因:使用multiple indexes for a single table access is very inefficient。这意味着,即使每一列都有一个索引,如果在 WHERE 子句中访问多个列,则选择性能也不是很好。在这种情况下,最好使用多列索引。
-
如果您有一个包含 30 个字段的表,您应该真正查看您的表结构。他们应该很难相处。