Det er ikke så tit at rækkefølgen af JOIN's har nogen optimerende betydning, da databaser generelt vælger deres egen måde at gennemføre SQL-statements på. Faktisk kan du slet ikke regne med, at databasen eksekvere dine SQL-statements som de står.
Når du sender et statement til databasen, udregner den en optimal plan for gennemførelsen af JOINS, sorteringer og grupperinger mv. Den endelige plan afhænger meget af, hvor gode dine indekseringer er, hvilket leder os til det faktum, at indekseringsvalg virkelig har noget at sige, når det kommer til performance. Generelt bør du have en indeksering pr. kolonne der joines, sorteres eller grupperes på, men man kan gøre langt mere med indekseringer, som dog kræver kendskab til den måde hvorpå den specifikke DBMS (i dette tilfælde MySQL) behandler hver enkelt del i SQL-statements. F.eks. kan JOIN's udføres vha. 3 forskellige algoritmer, hvor nogle er mere effektive end andre, og hvilken JOIN-algoritmer databasen vælger at bruge, afhænger af indekseringerne. Ved f.eks. at putte ekstra kolonner med i indekseringerne, er det muligt gennem implicit presortering at optimere de enkelte JOIN's. Indeksering er en lidt større videnskab og indeholder mange muligheder.
Hvis du vil gå lidt i dybden med indekseringer, er der en god artikel, som omhandler MS SQL Server, men sagtens kan bruges i forhold til MySQL, til at skabe en større forståelse. Forskellen består hovedsageligt i, hvordan man finder databasens valgte eksekveringsplan for et givent SQL-statement - i MySQL skriver man blot EXPLAIN foran SQL-statementet.
http://www.awprofessional.com/articles/article.asp?p=28285Hvis man er tændt på det, kan man også gå i en helt anden retning for at optimere, nemlig ved at revidere selve tabel-strukturen. Dog kan det være ret tidskrævende at skulle ændre i tabel-strukturen, da diverse SQL-statements også skal omskrives. Oftest anvender man en relationel tabel-struktur til at gemme sine data, men der findes andre måder at strukturere tabeller på, som gør det muligt at optimere ellers krævende udtræk, f.eks. data warehouse-modellen. Følgende artikel har igen fokus på MS SQL Server, men teorien er generel nok og beskriver andre tabel-struktur modeller end den kendte, relationelle model.
http://www.awprofessional.com/articles/article.asp?p=27852Det kan godt virke som lidt tør teori, hvis ikke man lige er forhippet på virkelig at lære det, men ønsker man at optimere seriøst, bør man tage ændringer tabel-struktur modellen med i sine overvejelser. Dog, hvis din relationelle tabel-struktur ikke fejler noget, kommer du langt med de rigtige indekseringer.