Ostatnio zaczynam zajmować się optymalizacją zapytań w moim serwisie, są dość pogmatwane, pisane "na szybko". Jednak serwis się nieźle rozrósł, potrzeba optymalizacji.
Bardzo przydał mi się ten topic i chciałbym do niego nawiązać, lecz w innym kontekście.
Temat: Indexy jak stosowac
Mianowicie. Z tego co wiem, bardzo ważna jest kolejność pól wymienianych w klauzuli ON.
W tabeli friends są powiązania między użytkownikami: friend_user - ID usera (przyjaciela), friend_owner - ID usera, który (brzydko mówiąc) ma tego przyjaciela.
Chcemy pobrać listę nicków userów, którzy są przyjacielami dla usera o ID 1. Dwa przypdaki:
SELECT user_name FROM friend LEFT JOIN users ON (user_id = friend_user) WHERE friend_owner = 1
SELECT user_name FROM friend LEFT JOIN users ON (friend_user = user_id) WHERE friend_owner = 1
Czy jest jakaś różnica między tymi dwoma zapytaniami oprócz kolejności zapisu (od strony teoretyczno/wydajnościowo/technicznej)? Jeżeli tak, to która z tych form jest bardziej poprawna i dlaczego?
Dzięki za udzielenie się w dyskusji.
Pozdrawiam.