2010-06-28 2 views
1

Может ли кто-нибудь полностью объяснить, что является большой разницей в этих двух методах? Есть ли недопонимание в теории баз данных программистов? Может кто-нибудь дать хорошую статью о вопросе или просто сказать - какая разница в этих методах в PosgreSQL?INNER JOIN vs MultiSelect в PosgreSQL

+2

Что такое "multiselect"? – Quassnoi

+1

Используйте EXPLAIN, чтобы увидеть разницу. PostgreSQL довольно умен в выполнении запросов, он может иметь один и тот же запрос для обоих типов запросов. –

+0

Под 'multiselect' вы, возможно, имеете в виду' subselect'? – leonbloy

ответ

2

Вы имели в виду SELECT * FROM table1, table2 vs SELECT * FROM table1 JOIN table2 ON condition?

Оптимизатор PostgreSQL заставляет эти запросы работать с одинаковой скоростью, но JOIN более прозрачен и удобен. Кроме того, вы можете использовать LEFT/RIGHT JOIN.

+0

Первая версия также подвержена случайным кросс-соединениям, а вторая - более удобной. – HLGEM

1

В документации PostgreSQL есть связанная тема. Явные объединения могут дать вам больше контроля над порядком выполнения операторов, используя join_collapse_limit GUC. Взгляните на this page.

Есть также все другие упомянутые преимущества в отношении удобочитаемости и ремонтопригодности.

Смежные вопросы