Prestazioni lente del server MySql - Cosa e come controllare?


10

inizio: Disclaimer

Non sono un DBA di MySql Server; Conosco soprattutto MSSQL - motivo per cui ho bisogno del tuo aiuto.

fine: Disclaimer

Mi è stato chiesto di verificare perché il motore del server MySql ha prestazioni scarse: non ho visto né tenuto in mano i database coinvolti e vorrei sapere da dove iniziare.

Da dove comincio?

Quali domande dovrei porre a chi ha accesso a MySql? Non so nemmeno se stanno usando phpmyadmin o qualche altro strumento.

Essenzialmente:

  • Quali articoli dovrei chiedere e come dovrei rispondere ad ogni pezzo che danno?

Quali sono gli elementi chiave da chiedere quando il problema riguarda le prestazioni del database?

in MSSQL posso verificare la presenza sp_who2di connessioni esistenti per vedere se qualcosa sta bloccando, qual è la controparte in mysql? * non deve essere specifico in quanto ci possono essere molti tipi di risultati per ogni articolo, ma vorrebbe aiutare a far rotolare la palla poiché sta interessando gli utenti - apparentemente hanno installato il motore mysql senza avere un dba a bordo.


Hai verificato i soliti problemi di risorse: CPU piena, RAM piena / non utilizzata, sovraccarico IO? Il 101 cose con cui inizieresti su un server SQL?
TomTom,

Non ho avuto la possibilità di - voglio solo essere preparato una volta entrato in modo che tutto continui a muoversi - è possibile che le persone sul posto abbiano già controllato e con entrambi i server di app e db con specifiche elevate (azienda sbarrata) i vorrei concentrarmi su cosa succede se l'hardware non è il problema
Yasker Yasker

Per esperienza - inizia da qui. Ho visto "server di fascia alta" con un disco fisso SCSI (che devono aver tirato fuori da un'asta ebay) con tempi di risposta di più secondi ... Avrei convalidato il lato IO. Aiuterà anche - troppi IO possono indicare indici mancanti se i numeri sono semplicemente ridicoli.
TomTom,

Risposte:


9
  • Registra query lente: se il tuo sistema ha un sacco di domande, diventa più difficile scoprire quali query rallentano il sistema. MySQL fornisce uno strumento per registrare query lente per ulteriori analisi http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

  • EXPLAIN Il comando esteso mostra i dettagli delle tue query quando non hai idea di cosa stia accadendo http://dev.mysql.com/doc/refman/5.0/en/explain-extended.html

  • Per velocizzare le tue query usa Index - Una buona pratica è aggiungere un indice vedendo quali campi si trovano nella clausola WHERE per aggiungere un indice. Inoltre, se stai recuperando tutti i campi da una tabella, la query diventa più lenta recuperando tutti i dati dal disco. Nella query SELEZIONA devi specificare quali campi devi portare invece di portarli tutti con *
  • Utilizza la cache delle query http://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html
  • Assicurarsi che le opzioni del file di configurazione del server MySQL siano ottimizzate in base all'hardware http://dev.mysql.com/doc/refman/5.5/en/option-files.html
  • Assicurati di utilizzare tipi di dati ottimizzati durante la creazione di una struttura di tabella Ad esempio i campi "Commenti" hanno una dimensione di 256 caratteri, rispondi a MYSQL con un campo con tipo VARCHAR (256) invece di utilizzare TEXT. La query sarà molto più veloce.

Procedure_analisi () può aiutarti a trovare tipi di dati ottimali:

http://www.mysqlperformanceblog.com/2009/03/23/procedure-analyse/

http://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html

  • Ci sono strumenti open source di Percona - http://www.percona.com/software/percona-toolkit che possono essere utili per i DBA di MySQL e specialmente quelli che sono nuovi a MySQL, questi strumenti forniranno loro una buona assistenza.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.