Mysql
 sql >> Database >  >> RDS >> Mysql

Devo usare istruzioni preparate per MySQL in PHP PERFORMANCE-WISE?

La Storia

Questa è stata la mia prima risposta a Stackoverflow. Da allora molte cose sono cambiate, in particolare la deprecazione e la rimozione dell'API mysql. Anche se sei ancora su php 5.6, l'api mysql_* non dovrebbe essere usata. Ora PDO o mysqli sono le uniche opzioni tra cui scegliere. La DOP è migliore per molte ragioni.

Le istruzioni preparate vengono memorizzate nella cache durante i caricamenti delle pagine?

La stessa istruzione preparata non verrà utilizzata tra i caricamenti della pagina. Deve essere preparato ogni volta. Se la compressione di ogni grande millisecondo è importante, una procedura memorizzata potrebbe essere una buona idea (supponendo che tu abbia una query complicata).

Per inserti di grandi dimensioni (migliaia di righe) è possibile ottenere una spinta maggiore scaricando i dati in un file di testo e caricandolo con LOAD DATA IN FILE . È molto più veloce di una serie di inserti.

La risposta originale

La verità è che a volte MySQL è più veloce e altre volte MySQL API è più veloce. Ma la differenza è davvero molto piccola. Se guardi uno qualsiasi dei test delle prestazioni sul web, la differenza è davvero di soli 10 - 20 millisecondi. Il modo migliore per aumentare le prestazioni è ottimizzare il design del tavolo.

Molti dei test che "dimostrano" che le vecchie API sono più veloci dimenticano convenientemente che per la massima sicurezza mysql_real_escape_string() dovrebbe essere chiamato per ogni variabile utilizzata nella query.

Le query vengono memorizzate nella cache dal server, se e solo se i dati su tutte le tabelle utilizzate nella query sono rimasti invariati.

Aspetti un altro aggiornamento con i numeri effettivi