2005-08-11から1日間の記事一覧

Optimizer: exists

現在の実装では、exists句のsubqueryはマージされないため、テーブルのJoin方法はNested loop joinになる。 Nested loop joinでは、Outer側(以下の例ではaccounts)から1行取り出すごとにsubqueryが実行されるため、Outer側のテーブルが大きい場合、検索が非…

Optimizer: in (subquery)の最適化

pull_up_IN_clauses(), convert_IN_to_join()で、in句のsubqueryを上位の階層のqueryにマージしている。 select a.* from accounts a where a.bid in (select bid from branches b where b.bid < 10)このSQLが以下のようになる。 select a.* from accounts a…