【发布时间】:2017-04-16 21:35:01
【问题描述】:
我需要通过分析结果和查看的行数来评估 理论 中的 SQL 查询。 欢迎任何在线信息链接,因为我无法在任何地方找到有关此问题的帮助。
我在课堂上学到了什么
假设我有 2 张桌子,
- 一个包含 100 个元组
- B 包含 500 个元组。
注解:|A| is the number of tuples after the query
{A} is the number of tuples examined to produce the query
我已经看到了
R = |A JOIN B| = 500 (we take the biggest of the two)
{A JOIN B} = 100 * 500 = 50 000 (we need to check every tuple)
R' = |R WHERE NO=1| = 5 (we suppose each no has 5 occurences)
{R'} = 500 (we had to loop through the 500)
R'' = |R'[name]| ~5
{R''} = 5
我的问题
- 一个包含 50 个元组
- B 包含 100 个元组。
R = |A JOIN B|
我的老师说 {A JOIN B} 花费 150,经过 B 花费 100,经过 A 花费 50。但是为什么这个 50*100 不像前面的示例那样?
他进一步说,在联合成本 5000 之后应用的限制,联合表中的总行数为 1500。行数不会是50*100吧?
【问题讨论】:
标签: mysql sql oracle performance query-optimization