数据库集合查询的优化
摘要:
有一个应用,需要经常做类似这样的查询 select* fromSomeTable where key in (KeySet),其中 KeySet 可能很大,比如包含几百甚至几千个元素。理想中的情况,数据库应该先在 BTree 中查找到 KeySet 中的 Key 所在的物理页面地址,然后再对这物理地址排序,最后按顺序读入这些页面内容并填充结果。如果这样做,那么在最坏情况下,KeySet 中元素的逻辑排序完全不等于其物理顺序,并且,每个Key所在的页面还不在相同的磁盘柱面上,这样,查询集合中所有 key 所花的磁盘时间就等于 Key 的数目乘以磁盘的“平均潜伏时间”(Average Latenc 阅读全文
posted @ 2008-01-12 22:21 能发波 阅读(165) 评论(0) 推荐(0)
浙公网安备 33010602011771号