我有一个运行得非常快的小查询。不知何故,我认为为未编制索引的索引添加索引会使其更快但事实证明它没有。实际上,它确实增加了我的磁盘读取和执行时间。我想问的是,有人可以向我解释有关索引如何工作的详细信息以及为什么它可能会降低性能而不是增加它。
提前致谢!
PS:我的RDBMS:Oracle
答案 0 :(得分:2)
完全可以在一张小桌子上。如果表格非常小,则可以通过单次读取将表格完全读入内存,并且可以在内存中完全执行全表扫描。在这里添加索引需要至少读取一个索引页,然后读取数据页,以便将I / O加倍。这是一个不寻常的案例,但并非闻所未闻。
然而,这只是我的猜测。要真正了解正在发生的事情,请使用索引来获取查询的执行计划,删除索引,并在没有索引的情况下获取执行计划。比较计划,并决定是否要重新添加索引。
分享并享受。