Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在学习查询优化。一般来说,在 JOIN 之前应用 PROJECT 和 SELECT 会给你更好的性能。我的问题是:
在应用JOIN操作之前应用SELECT操作或应用JOIN操作之前应用PROJECT操作是否会更好?
感谢您的任何回复。
“下推选择”是可以减少需要完成的 I/O 数量的基本优化策略之一。
例如,一个包含 sargable 谓词的选择,如果推到 join 下,将通过减少外部关系中的元组数量来有效减少 I/O 的数量(嵌套循环连接需要 |R|+|R|*|Q| I/O)。
|R|+|R|*|Q|
下推选择的主要缺点是无法使用原始关系上的现有索引的情况。是否推送的决定与连接方法的选择一起完成。
同样,如果投影保留了连接所需的属性,您可以“下推”投影。