In questo articolo discuteremo dell'impatto dell'eccessiva attività MySQL e di come può essere dannosa per l'utilizzo complessivo delle risorse del tuo account. MySQL è il database back-end di molte applicazioni Web popolari ed è il luogo in cui tali applicazioni memorizzano i propri dati per essere successivamente recuperati da script lato server per estrarre tali informazioni nelle tue pagine.
Se hai ricevuto un avviso dal nostro dipartimento di amministrazione del sistema in merito a un'attività MySQL eccessiva proveniente dal tuo account, molto probabilmente ciò significa che il livello di attività che stavano vedendo ha superato le capacità della piattaforma di hosting su cui risiede attualmente il tuo account.
Cause comuni dell'eccessiva attività di MySQL
Query di lunga durata | Una tipica query SQL dovrebbe essere in grado di essere completata entro 1 secondo o forse pochi secondi al massimo. Avere query di lunga durata che superano costantemente questi tempi di query può causare ritardi nell'elaborazione di altre query sul server. |
---|---|
Query elevate al secondo | In genere le query SQL arriveranno a piccole ondate in proporzione diretta al tuo traffico e se i tuoi script richiedono una grande quantità di query SQL per caricamento della pagina, potresti potenzialmente avere un numero elevato di query SQL al secondo che possono avere un impatto negativo sulle prestazioni delle query del server e iniziare a creare query di lunga durata. |
Query grandi non ottimizzate | Alcune query SQL saranno di natura molto complessa, in particolare quelle che uniscono più tabelle di dati prima di eseguire operazioni su tali dati. Garantire che le query SQL siano efficienti e recuperare solo i dati di cui hanno effettivamente bisogno per visualizzare, può aiutare a impedire a quelle query inefficienti di causare query di lunga durata o un numero elevato di query al secondo. |
Connessioni persistenti | La maggior parte delle query SQL aprirà semplicemente una connessione al database, recupererà i dati e quindi chiuderà la connessione al database. MySQL supporta anche connessioni persistenti in cui la connessione viene mantenuta anche dopo il recupero dei dati. Questo a volte può essere problematico soprattutto sull'hosting condiviso dove potresti imbatterti nel max _user_connections limite impostato in MySQL. |
Nella maggior parte dei casi, se la tua attività MySQL è eccessiva, il nostro dipartimento di amministrazione del sistema ti contatterà con una spiegazione generale sulla provenienza dell'attività.
Ottimizzazione dell'utilizzo di MySQL
Un buon primo passo per ottimizzare il tuo database MySQL è usare phpMyAdmin per ottimizzare un database.
A volte la tua normale attività MySQL potrebbe andare perfettamente bene, ma quando i robot iniziano a eseguire la scansione del tuo sito ciò potrebbe evidenziare inefficienze nella tua applicazione, quindi anche sapere come impedire ai motori di ricerca e ai robot di eseguire la scansione del tuo sito Web sarebbe una buona informazione da sapere.
Infine, vorresti anche esaminare le opzioni di memorizzazione nella cache SQL disponibili per la tua applicazione. Ad esempio, se la tua prima pagina richiede 2 query SQL per visualizzare tutte le informazioni su quella pagina e hai 100 persone che vengono a quella pagina, saranno 200 query e non verranno recuperati dati univoci, solo le stesse cose ogni volta.
L'implementazione della memorizzazione nella cache SQL può aiutare a ridurre queste query di database duplicate, per un esempio di questo tipo di memorizzazione nella cache puoi leggere l'ottimizzazione di WordPress con il plug-in W3 Total Cache.