Datenbank-Tuning - Slow Queries und MySQL-Performance: Slow Queries und MySQL-Performance
By Guido Mühlwitz and Stefan Gehrig
()
About this ebook
Related to Datenbank-Tuning - Slow Queries und MySQL-Performance
Titles in the series (100)
Geolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsZend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Erfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsErfolgreich bewerben in der IT - die besten Praxistipps von A wie (Anschreiben) bis Z (wie Zeugnis) Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Management Rating: 0 out of 5 stars0 ratingsM2M by Eclipse Rating: 0 out of 5 stars0 ratingsApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Rating: 0 out of 5 stars0 ratings
Related ebooks
Logging: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 13 Rating: 0 out of 5 stars0 ratingsAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Rating: 0 out of 5 stars0 ratingsWeb-Applikationen entwickeln mit NoSQL: Das Buch für Datenbank-Einsteiger und Profis! Rating: 0 out of 5 stars0 ratingsIPv6 Grundlagen - Funktionalität - Integration Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 16 Rating: 0 out of 5 stars0 ratingsDokumentenmanagement mit Microsoft Access: Vollwertiges DMS mit Quellcode und Erläuterungen Rating: 0 out of 5 stars0 ratingsJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Rating: 0 out of 5 stars0 ratingsSQL Server: Performanceprobleme analysieren und beheben Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsModerne Realzeitsysteme kompakt: Eine Einführung mit Embedded Linux Rating: 0 out of 5 stars0 ratingsWordPress-Tricks und -Tweaks: Bohren Sie WordPress mit selbst programmierten Funktionen auf! Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsBigData mit JavaScript visualisieren: D3.js für die Darstellung großer Datenmengen einsetzen Rating: 0 out of 5 stars0 ratingsMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Rating: 0 out of 5 stars0 ratingsEinführung in die Programmierung mit Java: Begleitunterlagen zu dem Onlinekurs Rating: 0 out of 5 stars0 ratingsSQL-Abfragen optimieren: Was Entwickler über Performance wissen müssen Rating: 0 out of 5 stars0 ratingsEinführung in SQL: Daten erzeugen, bearbeiten und abfragen Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsMehr als Clean Code: Gedanken zur Softwareentwicklung Rating: 0 out of 5 stars0 ratingsAdministrator Praxis - Kleine Windows Netzwerke Rating: 0 out of 5 stars0 ratingsMachine Learning – Die Referenz: Mit strukturierten Daten in Python arbeiten Rating: 0 out of 5 stars0 ratingsSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5Big Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsSoftwarearchitektur für Dummies Rating: 0 out of 5 stars0 ratingsWindows PowerShell: Grundlagen & Scripting-Praxis für Einsteiger – Für alle Versionen Rating: 0 out of 5 stars0 ratings
Databases For You
SQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Einführung in SQL: Daten erzeugen, bearbeiten und abfragen Rating: 0 out of 5 stars0 ratingsLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsKeine Angst vor Microsoft Access!: Datenbanken verstehen, entwerfen und entwickeln - Für Access 2007 bis 2019 Rating: 0 out of 5 stars0 ratingsDatenintensive Anwendungen designen: Konzepte für zuverlässige, skalierbare und wartbare Systeme Rating: 0 out of 5 stars0 ratingsDokumentenmanagement mit Microsoft Access: Vollwertiges DMS mit Quellcode und Erläuterungen Rating: 0 out of 5 stars0 ratingsBlockchain: Praktische Anwendungen, Praktisches Verständnis Rating: 0 out of 5 stars0 ratings
Reviews for Datenbank-Tuning - Slow Queries und MySQL-Performance
0 ratings0 reviews
Book preview
Datenbank-Tuning - Slow Queries und MySQL-Performance - Guido Mühlwitz
Guido Mühlwitz, Stefan Gehrig
Datenbank-Tuning
Slow Queries und MySQL-Performance
ISBN: 978-3-86802-499-9
© 2013 entwickler.press
Ein Imprint der Software & Support Media GmbH
1 MySQL Queries optimieren
Slow Queries in MySQL finden und beschleunigen
Trotz des Anlegens normalisierter Tabellenstrukturen und des Setzens geeigneter Indizes können in MySQL Queries generiert werden, deren Ausführung einige Sekunden dauert. Bei einem Einsatz im Web sind solche Antwortzeiten nicht akzeptabel und zumeist durch einfaches Umstellen der Abfragen optimierbar – vorausgesetzt man erkennt überhaupt, dass Slow Queries im System vorhanden sind.
Die Geschwindigkeit einer Datenbank ist von vielen Faktoren abhängig. Die Arbeit beginnt hier bereits beim Design der Datenbank, da sowohl Struktur als auch Indizes maßgeblich zur Geschwindigkeit von Queries beitragen. Aber selbst wenn man alles richtig gemacht hat, kann es beim Vorhandensein großer Datenmengen – zum Beispiel bei komplexen Joins, aber auch bei der Nutzung von Foreign Keys (InnoDB) – vorkommen, dass eine Query eine Rechenleistung von einigen Sekunden verschlingt. Hierbei gibt es keine festen Regeln, wann man in eine solche Falle gerät, aber die Optimierungsmöglichkeiten in MySQL sind diesbezüglich schier unendlich.
Anstatt das Übel an der Wurzel zu packen, wird in der Regel mit einem Caching gearbeitet. Dies erfüllt zwar seinen Zweck, funktioniert aber nur so lange man nicht auf Echtzeitdaten angewiesen ist. Der Benutzer wäre zum Beispiel nicht sehr erfreut, wenn Facebook seinen Newsfeed nur einmal pro Stunde aktualisieren würde.
Erschwerend kommt bei Geschwindigkeitseinbußen dieser Art hinzu, dass man sie in der Regel erst Monate nach Inbetriebnahme bemerkt. Nämlich genau dann, wenn aufgrund der Benutzerzahlen die Anzahl der Queries zu groß wird, oder die Datenmenge exponenziell angestiegen ist. Den Fehler wird man in einer lokalen Entwicklungsumgebung mit begrenzten Datensätzen nicht aufspüren, unter Umständen hilft es noch nicht einmal, die Daten zu spiegeln. Stattdessen muss ein genaues Monitoring des Servers über einen längeren Zeitraum erfolgen. MySQL bietet hierfür die notwendigen Werkzeuge.
Was sind Slow Queries und wie entstehen sie?
Die Definition, was eine Slow Query ist, bleibt jedem selbst überlassen. Im Falle von MySQL ist die maximale Ausführungszeit, die erreicht werden muss, damit eine Query als Slow Query gilt, in der Konfigurationsdatei einstellbar. Dies macht auch durchaus Sinn, da je nach Anwendungsfall verschiedene Ausführungszeiten akzeptiert werden können. Im Frontend einer Webanwendung geht es zum Beispiel nur um eine reine Geschwindigkeitsoptimierung, wohingegen man im Backend bei statistischen Auswertungen durchaus längere Laufzeiten akzeptieren kann.
Entsprechend ist eine Slow Query eine Query, deren Ausführungszeit über einer vom Administrator definierten Grenze liegt. Diese Grenze kann sehr eng gefasst sein und wird somit viele Slow Queries oder sehr weit und (wenn überhaupt) nur sehr wenige Ergebnisse liefern. In der Default-Einstellung von MySQL liegt