Langsame MySql Server-Leistung - Was und wie überprüfen?

10

Start: Haftungsausschluss

Ich bin kein MySql Server-DBA. Ich kenne mich hauptsächlich mit MSSQL aus - deshalb brauche ich Ihre Hilfe.

Ende: Haftungsausschluss

Ich wurde gebeten zu überprüfen, warum die MySQL-Server-Engine eine schlechte Leistung erbringt. Ich habe die betroffenen Datenbanken weder gesehen noch gespeichert und möchte wissen, wo ich anfangen soll.

Wo soll ich anfangen?

Welche Fragen sollte ich denen stellen, die Zugriff auf MySql haben? Ich weiß nicht einmal, ob sie phpmyadmin oder ein anderes Tool verwenden.

Im Wesentlichen:

  • Nach welchen Artikeln sollte ich fragen und wie würde ich auf jedes Stück reagieren, das sie geben?

Was sind die wichtigsten Punkte, nach denen gefragt werden muss, wenn das Problem in der Leistung der Datenbank liegt?

In MSSQL kann ich sp_who2nach vorhandenen Verbindungen suchen, um festzustellen, ob etwas blockiert. Was ist das Gegenstück in MySQL? * müssen nicht spezifisch sein, da es für jedes Element viele Arten von Ergebnissen geben kann, möchten aber helfen, den Ball ins Rollen zu bringen, da dies die Benutzer betrifft - anscheinend richten sie die MySQL-Engine ein, ohne dass eine DBA an Bord ist.

Yasker Yasker
quelle
Haben Sie die üblichen Ressourcenprobleme überprüft - CPU voll, RAM voll / nicht verwendet, E / A-Überlastung? Die 101 Sachen, mit denen Sie auf einem SQL Server beginnen würden?
TomTom
Ich hatte keine Chance dazu - ich möchte nur vorbereitet sein, wenn ich reinkomme, damit alles in Bewegung bleibt - es ist möglich, dass die Leute vor Ort bereits überprüft haben und sowohl mit App- als auch mit DB-Servern mit hohen Spezifikationen (Firma splurged) i
Ich möchte mich darauf
Aus Erfahrung - fangen Sie dort an. Ich habe "High-End-Server" mit einer SCSI-Festplatte gesehen (die aus einer eBay-Auktion stammen muss), die Antwortzeiten von mehreren Sekunden hatte ... Ich würde die E / A-Seite validieren. Es wird auch helfen - zu viel IO kann auf fehlende Indizes hinweisen, wenn die Zahlen einfach total lächerlich sind.
TomTom

Antworten:

9
  • Langsame Abfragen protokollieren - Wenn Ihr System eine Menge Abfragen hat, wird es schwieriger herauszufinden, welche Abfragen Ihr System verlangsamen. MySQL bietet ein Tool zum Protokollieren langsamer Abfragen zur weiteren Analyse http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

  • Der Befehl EXPLAIN Extended zeigt Details zu Ihren Abfragen an, wenn Sie keine Ahnung haben, was passiert. Http://dev.mysql.com/doc/refman/5.0/en/explain-extended.html

  • Um Ihre Abfragen zu beschleunigen, verwenden Sie Index. - Es empfiehlt sich, einen Index hinzuzufügen, indem Sie sehen, welche Felder in der WHERE-Klausel einen Index für sie hinzufügen. Auch wenn Sie alle Felder aus einer Tabelle abrufen, wird die Abfrage langsamer, indem alle Daten von der Festplatte abgerufen werden. In der SELECT-Abfrage sollten Sie angeben, welche Felder Sie stattdessen mitbringen müssen, um sie alle mit * zu versehen
  • Verwenden Sie den Abfrage-Cache http://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html
  • Stellen Sie sicher, dass die Optionen Ihrer MySQL-Serverkonfigurationsdatei entsprechend Ihrer Hardware optimiert sind: http://dev.mysql.com/doc/refman/5.5/en/option-files.html
  • Stellen Sie sicher, dass Sie beim Erstellen einer Tabellenstruktur optimierte Datentypen verwenden. Beispiel: "Kommentare" -Felder haben eine Größe von 256 Zeichen. Antworten Sie auf MYSQL mit einem Feld vom Typ VARCHAR (256), anstatt TEXT zu verwenden. Die Abfrage wird viel schneller sein.

Procedure_Analyse () kann Ihnen bei der Suche nach optimalen Datentypen helfen:

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

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

  • Es gibt Open-Source-Tools von Percona - http://www.percona.com/software/percona-toolkit, die für MySQL-Datenbankadministratoren hilfreich sein können, und insbesondere für diejenigen, die MySQL noch nicht kennen, bieten diese Tools gute Unterstützung.
Mahesh Patil
quelle