这可能被认为是一个奇怪的问题 - 但我正在寻找一个“备忘单”,它描述(例如)各种数据库操作的“昂贵”程度。
我正在寻找理论上的理解(可能是统计数据支持的)....例如,我可以猜测带有order by语句的select操作比普通select语句慢。
但是我听说JOINs是“昂贵的”,但我不确定...所以得到一些证据就好了......
答案 0 :(得分:2)
我不确定我见过这样的物品。这是一个非常复杂的领域,如果它排除了在整个查询中使用更便宜的策略,那么本地廉价的操作可能不是全局最优的。
例如,表扫描应该是昂贵的,但如果需要选择超过百分之几的记录,则通常是大型表上最便宜的操作。这是因为表扫描主要由顺序I / O组成,与大量(例如)书签操作可能使用的随机I / O相比,它可以相对有效地覆盖大量流数据。 p>
查询优化教程真的太大了,无法适应stackoverflow发布(至少在我可用的时候),但网上有很多资源,还有不少印刷书给它提供了很好的处理。它也有点依赖于平台,尽管这些原则通常适用于各个平台。
SQL Server是一个很好的实验系统,因为它附带的前端工具具有查询计划可视化功能,即使在免费的“快速”版本上也是如此。