Panoramica
MySQL è un sistema di gestione di database relazionali altamente versatile e ad alte prestazioni, utilizzato da molti pacchetti web based come WordPress, Joomla e Magento. Sebbene la configurazione predefinita offra prestazioni ragionevoli, ci sono sempre modi per assicurarti di ottenere la migliore velocità possibile dal tuo database.
In qualità di provider di hosting, ci viene chiesto continuamente un server "più veloce" o più risorse, mentre in molti casi questo non risolve il problema. Una migliore ottimizzazione e ottimizzazione delle prestazioni della tua configurazione esistente dovrebbe sempre essere il primo passo.
Queste istruzioni sono solo per server privati dedicati o virtuali (VPS). Se hai un hosting condiviso e hai bisogno di prestazioni del database migliori, parla con il team di Conetix della migrazione a un VPS.
Istruzioni
Attenzione! Assicurati di aver eseguito il backup del database prima di apportare modifiche.
Uno degli strumenti più semplici per aiutare a diagnosticare i problemi è MySQLTuner. Questo è uno script basato su Perl che analizzerà le prestazioni attuali del tuo servizio di database.
È meglio eseguire questo strumento alcune ore dopo che il database è in uso, non solo dopo il riavvio.
-
Scarica lo script MySQLTuner:
wget https://raw.github.com/major/MySQLTuner-perl/master/mysqltuner.pl
-
Aggiungi i permessi di esecuzione:
chmod +x mysqltuner.pl
-
Quindi, esegui lo script:
./mysqltuner.pl
Attenzione! Sebbene MySQLTuner sia ottimo nel darti un'idea iniziale di quali impostazioni modificare, ti preghiamo di comprendere cosa stai modificando prima di modificare le configurazioni. Alcune modifiche potrebbero comportare un peggioramento delle prestazioni e nel peggiore dei casi, la perdita di dati senza cure e attenzioni adeguate.
Ecco alcuni suggerimenti di base:
- Guarda la tua allocazione di memoria di InnoDB (innodb_buffer_pool_size) per assicurarti che sia allocata memoria sufficiente a MySQL.
- Controlla gli avvisi sui join eseguiti senza indici. Questi possono essere molto lenti da eseguire, soprattutto se hai una grande quantità di righe.
- Controlla la presenza di tabelle frammentate.
- Utilizza il comando EXPLAIN in MySQL per determinare i problemi di prestazioni con le tue query.
Ci sono molti altri suggerimenti, modifiche e miglioramenti possibili, usa i suggerimenti di MySQLTuner per aiutarti a indirizzarti nella giusta direzione ed esegui alcune ricerche su Google sul problema. Se sei un cliente Conetix, puoi registrare un ticket di supporto ed eseguiremo alcune analisi di base per te in modo completamente gratuito.
Ulteriori letture
- Ottimizzazione delle prestazioni di InnoDB: http://dev.mysql.com/doc/refman/5.0/en/innodb-tuning.html
- I 10 migliori consigli sulle prestazioni di Oracle: https://wikis.oracle.com/pages/viewpage.action?pageId=27263381
- Come indicizzare i join con MySQL:hackmysql.com/case4
- Spiegazione di MySQL EXPLAIN: http://www.slideshare.net/phpcodemonkey/mysql-explain-explained