2013-06-21 6 views
5

Sto costruendo un'app PHP che otterrà molto traffico. Ho sempre imparato che dovrei limitare il numero di query SQL (al momento è circa 15 per visitatore). Potrei limitarlo a circa la metà, usando PHP per filtrare e ordinare i dati, ma sarebbe più veloce? In alternativa, potrei usare "JOIN" nella query per ridurre il numero di query, ma è molto più veloce dell'esecuzione di più query? Grazie!Esegui query SQL più o più complicate o utilizza PHP per filtrare i dati?

+4

farlo nel db, ma solo dopo aver letto un sacco su "indici" per le tabelle. – goat

+1

15 query SQL per visitatore per pagina? oh accidenti. – Dementic

risposta

3

Se hai 15 query per visitatore, molto probabilmente hai fatto qualcosa di sbagliato, a meno che la tua applicazione non sia abbastanza grande.

Utilizzo di PHP per ordinare e filtrare i dati, invece di MySQL

Facendo l'ordinamento e filtraggio in PHP non renderà l'applicazione più veloce, lo renderà più lento di sicuro, MySQL è ottimizzato per essere molto veloce dato gli indici giusti, quindi dovresti sicuramente usarlo quando puoi.

Ulteriori informazioni sull'indicizzazione del database e semplificheranno la vita e aumenteranno le prestazioni dell'applicazione. Questo è il link:

http://www.mysqltutorial.org/mysql-create-drop-index.aspx

unione contro più query

Si chiede se si utilizza unirsi di sarebbe più veloce di eseguire più query.

La risposta è sì, sarà sempre più veloce utilizzare join dato gli indici corretti. Che torna anche al primo argomento, indicizzazione.

Tuttavia, tieni presente che l'unione è efficiente come lo vuoi essere, sarà estremamente efficiente se eseguita correttamente ed estremamente lenta se eseguita in modo errato, quindi è necessario conoscere le basi per farlo correttamente.

Potete guardare qui per un'introduzione a unirsi di:

http://blog.sqlauthority.com/2009/04/13/sql-server-introduction-to-joins-basic-of-joins/

Problemi correlati