Jeśli indeksy są używane prawidłowo, prawie zawsze jest bardziej wydajne aby użyć JOIN. Nacisk kładzie się na to, ponieważ najlepsza wydajność nie zawsze oznacza najlepszą wydajność.
Jednak tak naprawdę nie ma jednej uniwersalnej odpowiedzi; powinieneś przeanalizować zapytanie za pomocą EXPLAIN
aby upewnić się, że indeksy są rzeczywiście używane, że nie ma niepotrzebnego używania tabel tymczasowych itp. W niektórych przypadkach , warunki splatają się, tworząc zapytanie, którego po prostu nie można używać indeksów. W takich przypadkach może szybciej rozdzielaj zapytania na części we wskazany sposób.
Gdybym napotkał taki kod w istniejącym projekcie, zadałbym sobie pytanie:sprawdź zapytanie, zastanów się nad różnymi sposobami wykonania zapytania, upewnij się, że te rzeczy zostały wzięte pod uwagę, zbuduj naukową, popartą faktami argumentację za lub przeciw praktyce . Upewnij się, że pierwotni programiści dołożyli należytej staranności, ponieważ nieużywanie JOIN powierzchownie wskazuje na kiepski projekt bazy danych lub zapytań. W końcu jednak wyniki mówią głośno i jeśli wszystkie optymalizacje i poprawki nadal skutkują wolniejszym sprzężeniem niż zapewnia to użycie fragmentów zapytania, to przeważa szybsze rozwiązanie. Benchmark i działanie na podstawie wyników benchmarku; nie ma przypadku w projektowaniu oprogramowania, że należy zamienić słabą wydajność na przestrzeganie arbitralnych zasad dotyczących tego, co należy, a czego nie należy robić. Najskuteczniejsza metoda to najlepsza metoda.