Facebook usa soprattutto MySQL. Tra parentesi, qui trovate dei motivi per cui prima sparirà la leggenda urbana per cui il NoSQL fa funzionare internet, e migliori saranno le nostre vite:
http://www.quora.com/Quora-Infrastru...r/Adam-DAngelo
Detto questo, MySQL è veloce. Solo che in informatica niente funziona per magia, quindi o uno sa fare in modo che il db utilizzi gli indici giusti, oppure nulla sarà mai veloce nelle sue mani.
Purtroppo e per fortuna MySQL deve il suo successo all'essere nato nel momento in cui nascevano le applicazioni web (prima c'erano le pagine html statiche) ed essere infinitamente più semplice, leggero, pratico, dei suoi colossali rivali (Oracle, DB2...). La semplicità però è sempre un'arma a doppio taglio, e così la gente si aspetta che una join "funzioni". Se è lenta, è un problema di MySQL. Ma l'ottimizzatore non è un oggetto magico che entra nella tua mente per capire cosa vuoi fare, schiocca le dita, crea gli indici giusti e trova automaticamente la strada più rapida. E' semplicemente un "pezzo di codice" maledettamente complesso, che deve accontentare il maggior numero possibili di utenti applicando algoritmi che un principiante nemmeno immagina. E se vedi che la query è lenta, vuol dire che devi metterci un po' di impegno anche tu, perché l'ottimizzatore non è una pietra filosofale.