MySQL Performance Optimierung
Überblick über den Themenbereich der Performance Optimierung bei MySQL
WeiterlesenÜberblick über den Themenbereich der Performance Optimierung bei MySQL
WeiterlesenMit dem Befehl EXPLAIN vor einem SELECT kann man sehen wie MySQL die Query optimiert und verarbeitet. Man kann sehen ob und welche Indexe benutzt werden und wie hoch die Kosten für die Ausführung sind. Anhand des Ergebnisses kann man z.B. auch sehen wo evtl. noch ein Index fehlt oder wie man die Query noch […]
WeiterlesenDie allgemeine Regeln zusammengefasst Die folgenden Regeln zeigen meist erst bei großen Datenmengen bzw. Tabellen ihre Wirkung. Bei kleinen Datenbanken wird man wohl kein Unterschied merken. Das Sternchen bei SELECT * FROM.. sollte vermieden werden. (mehr infos s.u.) LEFT JOIN und RIGHT JOIN bei großen Tabellen und Datenmengen vermeiden. Möglichst ein JOIN ersetzen und mit […]
WeiterlesenTabellenformate und Datentypen Als Regel gilt: Die Daten so klein wie möglich bekommen. Den jeweils effizientesten (d. h. kleinstmöglichen) Datentyp verwenden. (z.B. ist MEDIUMINT ca. 25% kleiner als INT) Wenn möglich, Spalten als NOT NULL deklarieren. => Spart ein Bit je Spalte Weitere Infos zu diesen Thema findet man in der MySQL Dokumentation unter Wie […]
WeiterlesenMySQL Indexe richtig setzten. Die Goldenen Regeln. Informationen, Tipps & Tricks…
WeiterlesenNOT IN , NOT EXISTS oder LEFT JOIN mit IS NULL Abfrage – Welche Methode ist schneller? Wo sind die Unterschiede?
WeiterlesenSQl Query zum löschen von doppelten Einträgen in einer Tabelle
WeiterlesenWenn man sich alle doppelten Einträge einer Tabelle anzeigen lassen möchte, kann man auf folgende Query zurückgreifen:
1 |
SELECT * FROM `articles` WHERE `ean` IN (SELECT `ean` FROM `articles` GROUP BY `ean` HAVING count(`ean`) > 1 ); |
Leider habe ich bei großen Tabellen bemerkt, das diese Query sehr lange dauert.Mein erster Gedanke war natürlich nachzuprüfen ob ein Index auf die Spalte ean gesetzt ist. Nachdem der Index gesetzt wurde hat sich aber an der […]
WeiterlesenHier will ich einiges festhalten zum Thema MySQL Monitoring und Profiling. Wie und Woher bekomme ich vom MySQL Server die Messwerte den Status und die Werte der Einstellungen. Meist lassen sich bei einem MySQL Datenbank Server Performance Probleme nur durch ein gutes Monitoring aufspüren. Daher sollte man wissen wie man die Daten bekommt und aus denen Schlau wird.
WeiterlesenWas sind die optimalen Werte für bestimmte Einstellungen? key_buffer so groß, dass möglichst alle Indexe in den Buffer passen key_buffer_size – 25 -33% des Arbeitsspeichers table_cache in etwa der Anzahl der Tabellen opened_tables – Wenn der Wert sehr groß ist (und zwar auch dann, wenn viele FLUSH TABLES-Anweisungen abgesetzt wurden), dann sollte man die Größe […]
Weiterlesen