hier nochmal für alle der Inhalt meines MySQL-Vortrages am letzten Montag. Wer Interesse an einem (Erfahrungs-)Austausch zu den einzelnen Themen hat kann mich gerne kontaktieren.
Neues in MySQL 5.1
- Partitioning
- Event Scheduler
- Row-based replication
- Table logs
- XML functions
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
http://dev.mysql.com/tech-resources/articles/mysql-5.1-xml.html
Neues in MySQL 6.0
- Storage Engine "Falcon"
- Subquery Optimierungen
http://dev.mysql.com/doc/refman/6.0/en/mysql-nutshell.html
Performance Optimierung
- Schwachpunkte finden
- SQL (z.B. EXPLAIN SELECT)
- Slow-query log
- Status-Informationen (SHOW STATUS LIKE 'qcache_%'; ... 'com_select_*'; ... 'key_buffer_size')
- MySQL Proxy / Enterprise Monitor
- SQL-Tuning vor Servertuning
- Wahl der Storage-Engine je nach Tabellendaten bzw. -nutzung
- MyISAM
- index cache
- fulltext index
- InnoDB
- Memory
- Archive
- blackhole
- keine speicherung in der Datenbank, nur binlog
- cluster
- Projektspezifische Konfiguration des Servers
- Lastverteilung
Hochverfügbarkeitslösungen
- Shared Disk
- Replicated Block Device
- MySQL Replication
- Lesezugriffe auf beliebig viele Slaves verteilt
- Schreibzugriffe nur auf einen Server
- Verzögerung bei Datenübernahme über binlog
- Steuerung auf Applikationsebene oder automatisiert über Wrapperfunktion
- bei Ausfall des Masters muss Slave als Master konfiguriert werden (Kurzer Ausfall nur schwer zu vermeiden)
- MySQL Cluster
- 99,999%ige Verfügbarkeit (lt. MySQL)
- Verteilte Lese- und Schreibzugriffe
- Daten im Hauptspeicher
- kein Ausfall wenn mal ein Server nicht läuft
Backup-Strategien
- mysqldump + binlog
- mysqlhotcopy (MyISAM, ARCHIVE)
- über Management-Client im Cluster
http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-backup-using-management-client.html