sprzężenia zewnętrzne są droższe niż wewnętrzna łączy. To, co powiem, będzie dla wielu kontrowersyjne. Jeśli dostroisz bazę danych poprawnie i jeśli nie zrobisz niczego głupiego i jeśli używasz profesjonalnej siły RDBMS, wtedy 7 wewnętrznych połączeń nie powinno stanowić problemu.
Co mam na myśli przez dostrajanie bazy danych? Istnieje wiele kwestii związanych z dostrajaniem bazy danych, ale najbardziej oczywistą rzeczą do sprawdzenia jest upewnienie się, że zawsze dołączasz do kolumn, które są indeksowane.
Co mam na myśli przez głupkowaty? Nie używaj operatora OR w stanie złączenia. Staraj się trzymać połączenia za pomocą pojedynczego porównania, takiego jak klucz obcy w jednej tabeli, co równa się kluczowi podstawowemu w drugiej tabeli. Staraj się, aby wszystkie twoje kluczowe pola były wpisane jako liczby całkowite.
Jeśli wystąpią problemy z wydajnością, należy zapoznać się z planem wykonywania niepoprawnej kwerendy. Na przykład możesz napotkać problemy podczas dołączania do naprawdę dużych tabel, tak dużych, że nawet skanowanie indeksu jest zbyt wolne. Być może trzeba będzie zdenormalizować i zapewnić dodatkowe filtrowanie, aby zmniejszyć czas skanowania. Nie próbuj przewidywać tego. Denormalizacja najlepiej jest wykonać tylko i wyłącznie po uruchomieniu w rzeczywistych sytuacjach wydajności.
czy masz indeksy w kolumnach używanych dla warunku łączenia (jak również każdej kolumny używanej dla innego warunku, jak w klauzuli where)? może * naprawdę * pomóc. Ogólnie rzecz biorąc, słyszałem, że wewnętrzna strona jest lepsza pod względem wydajności niż po lewej stronie - ale to, co powinno być używane, zależy od tego, co chcesz uzyskać. ^^ –