Langsame MySQL-Abfragen finden und optimieren

Homepages, CMS, Templates, Web Based Programming, Webhosting, Gameserver

Moderatoren: coolmann, chillmensch

Benutzeravatar
schmidtsmikey
Site Admin
Beiträge: 8534
Registriert: 08.12.2003, 21:50
Wohnort: Hamburg
Kontaktdaten:

Langsame MySQL-Abfragen finden und optimieren

Beitragvon schmidtsmikey » 24.11.2011, 20:46

Nahezu jede moderne Webseite verwendet ein Content Management System und somit ist ein Datenbankmanagement-System wie MySQL Voraussetzung. Doch MySQL kann schnell zur Leistungsbremse werden, wenn SQL-Abfragen schlecht programmiert sind oder Indizes fehlen. Gerade bei großen Datenbank-Tabellen machen sich fehlende Indizes schnell bemerkbar, indem die Ladegeschwindigkeit der Webseiten mit der Zeit immer langsamer werden.

In dem folgenden Artikel wird erläutert, wie man langsame SQL-Abfragen (slow query) ausfindig macht, diese mittels EXPLAIN analysiert und anschließend optimiert. Diese Vorgehensweise sollte immer zuerst in Betracht gezogen werden, bevor man die MySQL-Servereinstellungen anpasst oder sogar die Hardware aufrüstet.

Zum Artikel: MySQL - Abfragen optimieren und slow-query auffinden

linuxone
Beiträge: 66
Registriert: 20.12.2008, 08:46
Wohnort: NRW

Re: Langsame MySQL-Abfragen finden und optimieren

Beitragvon linuxone » 26.11.2011, 06:41

Hi,

zur Optimierung der MySQL Konfiguration insbesondere bei großen Datenbanken, vielen oder komplexen Abfragen können spezielle Scripts helfen. Denn oft sind es nicht nur langsame Abfragen, auch die Konfiguration des MySQL Servers hat Anteil an der Performance des Systems.

Insbesondere tuning-primer.sh von einem der MySQL Entwickler finde ich dabei hilfreich und nützlich, da es die gesamte Konfig des MySQL Servers analysiert und konkret auf Engpässe hinweist, mit Angabe des anzupassenden Konfig Parameters. Infos und Download siehe:

https://launchpad.net/mysql-tuning-primer

Herunterladen, speichern, unter Linux mit "chmod u+x mysql-tuning-primer.pl" ausführbar machen, dann mit "./mysql-tuning-primer.pl" aufrufen und die Ausgaben in der Shell genau studieren.

Ein etwas anderes Script ist hier zu finden:

http://www.howtoforge.com/tuning-mysql- ... mysqltuner (Info)
https://github.com/rackerhacker/MySQLTuner-perl (Download)

Beide Scripts sind für Produktionsserver gedacht, die bereits mindestens 24 - 48 Stunden laufen. Perl inklusive Perl DBI ist erforderlich.

Happy Tuning.
Thomas

Benutzeravatar
schmidtsmikey
Site Admin
Beiträge: 8534
Registriert: 08.12.2003, 21:50
Wohnort: Hamburg
Kontaktdaten:

Re: Langsame MySQL-Abfragen finden und optimieren

Beitragvon schmidtsmikey » 25.12.2011, 08:50

Jo, danke für den Hinweis und sorry für meine späte Antwort. Werde mir das mal antun.

Wobei ich der Meinung bin, dass der wichtigste Schritt ist, die SQL Anfrage zu optimieren. Dann packe ich die Server-Konfig an...

linuxone
Beiträge: 66
Registriert: 20.12.2008, 08:46
Wohnort: NRW

Re: Langsame MySQL-Abfragen finden und optimieren

Beitragvon linuxone » 25.12.2011, 12:33

Hi,

schmidtsmikey hat geschrieben:Wobei ich der Meinung bin, dass der wichtigste Schritt ist, die SQL Anfrage zu optimieren. Dann packe ich die Server-Konfig an...


die am besten optimierte SQL Query nutzt rein gar nichts, wenn a) die Struktur der Datenbank wenig sinnvoll ist (Stichwort: Indizes, Join/Verknüpfungen/Constrains usw.) und b) die Konfiguration der DB nicht für die jeweilige Struktur und Anwendung optimal angepasst ist.

Wenn ich beispielsweise Millionen Datensätze in eine DB importieren möchte (was ich gelegentlich über kleine Perl Scripts machen darf), ist die Konfig anders als "nur" bei reinen Abfragen mit vereinzelten, gelegentlichen Inserts. Oder wenn ein Index langsam so gross wird wie die vorhandene Menge an RAM Speicher, ist die optimale Konfig des Betriebssystems und der DB (und anderes mehr) von besonderer Bedeutung. Ok, derartige Szenarien werden die wenigsten bei Standard-DB Anwendungen bzw. Internet DB erleben, aber es gehört genauso zum Datenbank Knowhow wie alles andere. ;)

Ein frohes Fest noch.
Gruss,
Thomas

Benutzeravatar
schmidtsmikey
Site Admin
Beiträge: 8534
Registriert: 08.12.2003, 21:50
Wohnort: Hamburg
Kontaktdaten:

Re: Langsame MySQL-Abfragen finden und optimieren

Beitragvon schmidtsmikey » 06.01.2012, 16:13

Hehe, Du glücklicher darfst Dich also so tief in die Materie einarbeiten :D

Wenn Du schon beginnst, das O.S. (wahrscheinlich Dateisystem & Co.) zu konfigurieren, dann ist das schon sehr tiefgreifend...


Zurück zu „Webseiten, Webprogrammierung & Domains“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast