Original-URL des Artikels: http://www.golem.de/news/oracle-mysql-5-6-ist-deutlich-schneller-1302-97388.html    Veröffentlicht: 05.02.2013 16:19

Oracle

MySQL 5.6 ist deutlich schneller

Oracle hat seine freie Datenbank MySQL in der Version 5.6 veröffentlicht. Die neue Version soll schneller sein, besser skalieren. MySQL 5.6 unterstützt zudem ein NoSQL-Interface, eine verbesserte Replikation und eine Volltextsuche für InnoDB.

MySQL 5.6 enthält eine verbesserte Version der Storage-Engine InnoDB und soll damit auf Systemen mit Multicore-Prozessoren nahezu linear skalieren, bis hin zu 60 gleichzeitig laufenden CPU-Threads. MySQL 5.5 bricht laut Oracles Benchmarks hingegen ab etwa 20 Threads ein. Eine neue Architektur von InnoDB soll zugleich den Transaktionsdurchsatz erhöhen, Oracles Benchmarks weisen hier zum Teil eine Verdopplung gegenüber MySQL 5.5 aus.

Deutliche Verbesserungen gibt es auch bei Transaktionen, die nur lesend auf Daten zugreifen. Mit der Syntax "START_TRANSACTION_READ_ONLY" kann MySQL 5.6 dazu gebracht werden, auf den Transaktionsoverhead zu verzichten. Der Durchsatz soll sich damit unter Linux laut Oracle verdreifachen.

Weitere Optimierungen hat Oracle für Systeme mit SSDs vorgenommen. Dazu zählen kleinere Page-Größen von 4K sowie 8K und die Unterstützung portabler .idb-Dateien, in denen InnoDB seine Daten speichert. Dadurch soll es einfacher werden, eine Datenbank bei großer Last auf eine SSD zu migrieren.

Optimizer verbessert

Auch den Optimizer von MySQL hat Oracle verbessert, so dass er in der neuen Version effizienter und schneller arbeitet. Neue Funktionen sollen dafür sorgen, dass Querys schneller ausgeführt werden. Das gilt vor allem für Unterabfragen, die dank Semi-JOINs deutlich schneller werden sollen. Bei Querys mit "ORDER BY" und "LIMIT" produziert der Optimizer in der neuen Version mit einem einzigen Table-Scan sortierte Ergebnisse, was in Tests solche Abfragen zum Teil viermal schneller macht als bisher. Zudem kann der Optimizer bei Abfragen mit mehreren Primärschlüsseln direkt alle Schlüssel an die Storage-Engine übergeben, damit diese effizienter arbeiten kann.

Die Struktur einer Tabelle kann mit neuen Befehlen im laufenden Betrieb verändert werden, ohne dass es zu Aussetzern kommt.

NoSQL- Zugriff auf InnoDB

Neu in MySQL 5.6 ist zudem ein Key-Value-Store, mit dem Oracle die Datenbank gegen NoSQL-Systeme positionieren will. Dabei unterstützt MySQL das Memcached-API. So gespeicherte Daten können aber ebenso über das InnoDB-API abgefragt werden. So können bestehende Memcached-Clients genutzt werden, um Daten in InnoDB-Tabellen zu speichern, Entwickler profitieren aber zugleich von einer deutlich höheren Geschwindigkeit der Datenbank.

Volltextsuche für InnoDB

InnoDB unterstützt in der neuen Version zudem eine Volltextsuche, die Oracle als bessere Alternative zur schon bisher verfügbaren Volltextsuche von MyISAM positioniert.

Verbesserte Replikation

Bei der Replikation unterstützt MySQL 5.6 sogenannte Global Transactions Identifiers. Damit kann nachvollzogen werden, dass eine Transaktion auf der Master- sowie den angeschlossenen Slave-Datenbanken eines Replikationsclusters vollzogen ist. Neue Python-Werkzeuge sollen dies nutzen, um für ein automatisches Fail-Over bei Problemen zu sorgen.

Replikationsmaster können darüber hinaus Schreibzugriffe gruppieren und zusammen in das für die Replikation genutzte Binlog schreiben. Das soll schneller gehen, als jeden Schreibzugriff einzeln abzulegen.

MySQL 5.6 speichert zudem ab, bis zu welcher Stelle im Binlog die Replikation erfolgreich war, so dass Slave-Systeme bei Problemen genau an der Stelle wieder ansetzen können. Die Integrität der Daten kann mit Prüfsummen sichergestellt werden.

Darüber hinaus kann die Replikation auf ein Slave mit einer Verzögerung versehen werden. Kommt es auf dem Master zu Problemen, kann das Slave-System zum Master gemacht werden, noch bevor die problematische Änderung von ihm verarbeitet wird.

MySQL 5.6 steht ab sofort unter MySQL.com zum Download bereit. Trotz der Fortschritte haben die ersten Linux-Distributionen angekündigt, MySQL durch den Fork MariaDB zu ersetzen.  (ji)


Verwandte Artikel:
Fedora: MariaDB soll MySQL ersetzen   
(22.01.2013 14:19, http://www.golem.de/news/fedora-mariadb-soll-mysql-ersetzen-1301-97069.html)
1 Milliarde Nutzer: Facebooks größte technische Errungenschaften   
(28.01.2013 11:02, http://www.golem.de/news/1-milliarde-nutzer-facebooks-groesste-technische-errungenschaften-1301-97179.html)
Datenbank: Oracle veröffentlicht MySQL 5.5 GA   
(16.12.2010 08:48, http://www.golem.de/1012/80159.html)
Exadata X3: Oracle stellt In-Memory-Maschine vor   
(02.10.2012 09:58, http://www.golem.de/news/exadata-x3-oracle-stellt-in-memory-maschine-vor-1210-94861.html)
Oracle: Patchday repariert Fehler, nur nicht in Java   
(16.01.2013 15:16, http://www.golem.de/news/oracle-patchday-repariert-fehler-nur-nicht-in-java-1301-96956.html)

© 2014 by Golem.de