Book description
Einführungen in MySQL gibt es viele. Wer aber größere MySQL-Server betreut, die verlässlich laufen müssen, egal was Programmierer oder Benutzer auf sie loslassen, der braucht weiter reichende Informationen. In High Performance MySQL beschreiben sechs anerkannte Experten mit langjähriger Erfahrung auf großen Systemen alle Stellschrauben, an denen MySQL-Admins drehen können, um Sicherheit, Performance, Datenintegrität und Robustheit zu erhöhen.
Von Profis für Profis
Hier geht es nicht um kleine Webauftritte mit Datenbankanbindung! Lernen Sie stattdessen fortgeschrittene Techniken kennen, mit denen Sie MySQLs Potenzial voll ausreizen können -- um große, skalierbare Systeme zu entwerfen, zu optimieren und zu sichern. Behandelt werden Benchmarking, Indizes, Storage-Engines, Replikationen, Lastverteilung und Hochverfügbarkeit, Backups, Sicherheit... und zu jedem Aspekt die richtigen Werkzeuge, mit denen sich Ihre Ziele am besten realisieren lassen.
Praxiserprobt muss es sein
Der eine ist MySQL-Guru bei Yahoo!, der andere Angestellter Nr. 25 bei MySQL AB und dort nacheinander für das MySQL-Manual, die Trainingskurse und die Entwicklung des Supports zuständig, wieder ein anderer war bei MySQL AB im High-Performance-Team - die Autoren dieses Buchs wissen, wovon sie sprechen. Graue Theorie finden Sie woanders, hier geht es um bewährte Techniken aus der Praxis.
Ein Klassiker wird runderneuert
Die erste Auflage von „High Performance MySQL” wurde hoch gelobt und hat schon unzähligen Lesern wertvolle Dienste geleistet. Nun war es an der Zeit, dieses anerkannte Handbuch einmal komplett zu aktualisieren, um nützliches Referenzmaterial zu erweitern, neue Features der Versionen MySQL 5.0 und 5.1 zu ergänzen und zahlreiche Themen wie die Optimierung der Storage-Engine InnoDB zu vertiefen.
"Im Meer der MySQL-Literatur findet man so viel konzentriertes Know-how, das deutlich über Selbstverständlichkeiten hinausgeht, nicht allzu häufig."
Linux-Magazin, November 2008, zur engl. Originalausgabe
Table of contents
- High Performance MySQL: Optimierung, Backups, Replikation und Lastverteilung
-
Vorwort
-
Wie dieses Buch aufgebaut ist
- Ein breiter Überblick
- Eine solide Grundlage bauen
- Ihre Anwendung verbessern
- Erweiterungen nach Änderungen
- Ihre Anwendung zuverlässig machen
- Verschiedene nützliche Themen
- Software-Versionen und Verfügbarkeit
- Konventionen in diesem Buch
- Die Codebeispiele benutzen
- Wie Sie mit uns in Verbindung treten
- Danksagungen für die zweite Auflage
- Danksagungen für die erste Auflage
-
Wie dieses Buch aufgebaut ist
-
1. Die MySQL-Architektur
- Die logische Architektur von MySQL
- Nebenläufigkeitskontrolle
- Transaktionen
- Multi-Version Concurrency Control
-
Die Storage-Engines von MySQL
- Die MyISAM-Engine
- Die MyISAM-Merge-Engine
- Die InnoDB-Engine
- Die Memory-Engine
- Die Archive-Engine
- Die CSV-Engine
- Die Federated-Engine
- Die Blackhole-Engine
- Die NDB-Cluster-Engine
- Die Falcon-Engine
- Die solidDB-Engine
- Die PBXT-(Primebase XT-)Engine
- Die Maria-Storage-Engine
- Weitere Storage-Engines
- Die richtige Engine auswählen
- Überlegungen
- Praktische Beispiele
- Storage-Engine-Zusammenfassung
- Tabellenkonvertierungen
- ALTER TABLE
- CREATE und SELECT
-
2. Engpässe finden: Benchmarking und Profiling
- Wozu Benchmarks?
- Benchmarking-Strategien
- Benchmarking-Taktiken
- Benchmarking-Werkzeuge
- Benchmarking-Beispiele
- Profiling
- Profiling des Betriebssystems
-
3. Schema-Optimierung und Indizierung
- Optimale Datentypen auswählen
- Grundlagen der Indizierung
- Indizierungsstrategien für High Performance
- Indizierung – eine Fallstudie
- Index- und Tabellenpflege
- Normalisierung und Denormalisierung
- ALTER TABLE beschleunigen
- Hinweise zu Storage-Engines
-
4. Optimierung der Abfrageleistung
- Grundlagen langsamer Abfragen: Datenzugriff optimieren
- Methoden zum Umstrukturieren von Abfragen
- Grundlagen der Abfrageverarbeitung
- Grenzen des MySQL-Abfrageoptimierers
- Bestimmte Arten von Abfragen optimieren
- Hinweise für den Abfrageoptimierer
- Benutzerdefinierte Variablen
-
5. Erweiterte MySQL-Funktionen
- Der MySQL-Abfrage-Cache
- Code in MySQL speichern
- Cursor
- Vorbereitete Anweisungen
- Benutzerdefinierte Funktionen
- Sichten
- Zeichensätze und Sortierreihenfolgen
- Volltextsuche
- Fremdschlüsselbeschränkungen
- Merge-Tabellen und Partitionierung
- Verteilte (XA-) Transaktionen
-
6. Die Servereinstellungen optimieren
- Grundlagen der Konfiguration
- Allgemeines Tuning
- Das Ein-/Ausgabeverhalten von MySQL anpassen
- Die MySQL-Nebenläufigkeit anpassen
- Lastbasierte Anpassungen
- Verbindungsbezogene Werte anpassen
-
7. Betriebssystem- und Hardwareoptimierung
- Was beschränkt die Leistung von MySQL?
- Wie Sie CPUs für MySQL auswählen
- Speicher- und Festplattenressourcen abwägen
- Hardware für einen Slave wählen
- RAID-Leistungsoptimierung
- Storage Area Networks und Network-Attached Storage
- Mehrere Festplatten-Volumes benutzen
- Die Netzwerkkonfiguration
- Ein Betriebssystem wählen
- Ein Dateisystem wählen
- Threading
- Swapping
- Der Betriebssystemstatus
-
8. Replikation
- Replikation im Überblick
- Die Replikation einrichten
- Replikation näher betrachtet
- Replikationstopologien
- Replikation und Kapazitätsplanung
- Replikationsadministration und -wartung
-
Replikationsprobleme und Lösungen
- Durch Datenverfälschung oder -verlust verursachte Fehler
- Nichttransaktionsfähige Tabellen verwenden
- Transaktionsfähige und nichttransaktionsfähige Tabellen mischen
- Nichtdeterministische Anweisungen
- Unterschiedliche Storage-Engines auf Master und Slave
- Datenänderungen auf dem Slave
- Nichteindeutige Server-IDs
- Undefinierte Server-IDs
- Abhängigkeiten von nichtreplizierten Daten
- Fehlende temporäre Tabellen
- Es werden nicht alle Updates repliziert
- Lock-Contention aufgrund von sperrenden InnoDB-Selects
- In einer Master-Master-Replikation auf beide Master schreiben
- Übermäßiger Rückstand bei der Replikation
- Übergroße Pakete vom Master
- Beschränkte Replikationsbandbreite
- Kein Festplattenplatz
- Beschränkungen der Replikation
- Wie schnell ist die Replikation?
- Die Zukunft der MySQL-Replikation
-
9. Skalierung und Hochverfügbarkeit
- Terminologie
-
MySQL skalieren
- Skalierbarkeit einplanen
- Vor der Skalierung
- Vertikal skalieren
-
Horizontal skalieren
- Funktionelle Partitionierung
- Datenzerlegung (Sharding)
- Einen Partitionierungsschlüssel wählen
- Abfragen in mehreren Shards
- Daten, Shards und Knoten zuweisen
- Feste Allozierung
- Dynamische Allozierung
- Explizite Allozierung
- Shards neu ausgleichen
- Global eindeutige IDs generieren
- Werkzeuge für das Sharding
- Den Datenumfang verringern
- Mit Clustern skalieren
- Lastausgleich
- Hochverfügbarkeit
- 10. Optimierung auf Anwendungsebene
-
11. Backup und Wiederherstellung
- Überblick
- Überlegungen und Kompromisse
- Binärlogs organisieren und sichern
- Daten in einem Backup sichern
- Wiederherstellung aus einem Backup
- Backup- und Wiederherstellungsgeschwindigkeit
- Backup-Werkzeuge
- Backups mit Skripten
-
12. Sicherheit
- Terminologie
-
Account-Grundlagen
- Berechtigungen
- Die Grant-Tabellen
- Wie MySQL die Berechtigungen überprüft
- Grants hinzufügen, entfernen und betrachten
- MySQL-Berechtigungen einrichten
- Besondere Änderungen in MySQL 4.1
- Besondere Änderungen in MySQL 5.0
- Berechtigungen und Leistung
-
Verbreitete Probleme und Lösungen
- Verbindung über localhost oder über 127.0.0.1?
- Temporäre Tabellen sicher einsetzen
- Passwortlosen Zugriff verbieten
- Anonyme Benutzer deaktivieren
- Denken Sie daran, Hostnamen separat in Anführungszeichen zu setzen
- Verwenden Sie Benutzernamen nicht noch einmal
- Das Gewähren von SELECT erlaubt SHOW CREATE TABLE
- Gewähren Sie keine Berechtigungen in der mysql-Datenbank
- Gewähren Sie nicht freimütig die Berechtigung SUPER
- Gewähren von Berechtigungen in Datenbanken mit Wildcards
- Bestimmte Berechtigungen zurücknehmen
- Benutzer können sich sogar nach einem REVOKE verbinden
- Wann können Sie keine Berechtigung gewähren oder zurücknehmen?
- Unsichtbare Berechtigungen
- Veraltete Berechtigungen
- Betriebssystemsicherheit
- Netzwerksicherheit
- Datenverschlüsselung
- MySQL in einer chroot-Umgebung
-
13. Der MySQL-Serverstatus
- Systemvariablen
-
SHOW STATUS
- Thread- und Verbindungsstatistiken
- Der Status des Binär-Loggings
- Befehlszähler
- Temporäre Dateien und Tabellen
- Handler-Operationen
- MyISAM-Schlüsselpuffer
- Dateideskriptoren
- Abfrage-Cache
- SELECT-Typen
- Sortieren
- Tabellen-Locking
- Secure Sockets Layer (SSL)
- InnoDB-spezifisches
- Plugin-spezifisches
- Verschiedenes
- SHOW INNODB STATUS
- SHOW PROCESSLIST
- SHOW MUTEX STATUS
- Status der Replikation
- INFORMATION_SCHEMA
- 14. Werkzeuge für High Performance
- A. Große Dateien übertragen
- B. EXPLAIN benutzen
-
C. Sphinx mit MySQL benutzen
-
Überblick: Eine typische Sphinx-Suche
- Wieso sollten Sie Sphinx benutzen?
- Effiziente und skalierbare Volltextsuche
- WHERE-Klauseln effizient anwenden
- Die obersten Ergebnisse anzeigen
- Optimieren von GROUP BY-Abfragen
- Parallele Ergebnismengen generieren
- Skalierung
- Verteilte Daten ansammeln
- Überblick über die Architektur
- Überblick über die Installation
- Typische Verwendung der Partitionierung
- Besondere Eigenschaften
- Phrasennähe-Ranking
- Unterstützung für Attribute
- Filterung
- Die Plugin-fähige SphinxSE-Storage-Engine
- Erweiterte Leistungsüberwachung
- Praktische Implementierungsbeispiele
- Selects optimieren auf Sahibinden.com
- GROUP BY auf BoardReader.com optimieren
- Geteilte JOIN-Abfragen auf Grouply.com optimieren
- Schlussfolgerung
-
Überblick: Eine typische Sphinx-Suche
- D. Sperren debuggen
- Kolophon
- Stichwortverzeichnis
- Impressum
Product information
- Title: High Performance MySQL: Optimierung, Backups, Replikation und Lastverteilung
- Author(s):
- Release date: February 2009
- Publisher(s): O'Reilly Verlag
- ISBN: 9783897218895
You might also like
book
Konfigurationsmanagement mit Subversion, Maven und Redmine
Beschreibt den kompletten KM-Prozess und seine Organisation, nicht nur die Werkzeuge+ Hat sich in den drei …
book
SQL kurz & gut, 2nd Edition
Die stark erweiterte und aktualisierte Neuauflage des Bestsellers bietet gewohnt knapp und präzise die wichtigsten Informationen …
book
Ethereum – Grundlagen und Programmierung
Von herausragenden Experten lernen: Andreas M. Antonopoulos, weltweit führender Bitcoin- und Open-Blockchain-Experte, und Dr. Gavin Wood, …
book
Datenintensive Anwendungen designen
Daten stehen bei vielen Aufgaben des modernen Systemdesigns im Mittelpunkt. Dabei sind komplexe Fragen wie Skalierbarkeit, …