5.5 ist GA!
Auch ich will mir die Freiheit nehmen über die MySQL 5.5 zu berichten. Die neuen Features, welche meine Neugierde weckten, werden in einem anderen Blog zusammengefasst.Bereits in den Blogs hier und hier verglich ich PBXT vs InnoDB(Plugin 1.0.13) und MySQL 5.5.8 selbst kommt mit dem Plugin 1.1.8.
Was liegt näher, als die Gelegenheit zu nutzen und ein paar Tests auf MySQL 5.5zu fahren?
Für den Vergleich wurde wieder die unten stehende Tabelle mit 300.000.000 Rows genommen.
CREATE
TABLE
`rein`
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`id2` int(11) NOT NULL,
`id3` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `id2` (`id2`)
) ENGINE=INNODB DEFAULT CHARSET=latin1
Start the fire
Ich habe es mir einfach gemacht und über die aktuelle 5.1.53 die 5.5.8 installiert. Die Einträge, welche zu 5.1.x Zeiten noch, dafür sorgten, dass das interne InnoDB ignoriert wird und das InnoDB-Plugin geladen sind zu entfernen. Schmerzlich musste ich auch feststellen, dass SHOW INNODB STATUS nicht mehr funktioniert. Jetzt wurde durchgegriffen es hat SHOW ENGINE INNODB STATUS zu lernen:)Es gab immer zwei Durchläufe und der letzte (mit heißem Cache) wurde gewertet.
SELECT
id3
from rein where ID=@id

uniform:

Spontan keinen Grund auf 5.5 zu wechseln.
Wie sieht es für UPDATEs aus:
UPDATE
rein SET id3=round(rand()*10000) where ID=@id

uniform:

Autsch das tut weh. So gesehen gibt es gar keinen Grund auf 5.5 wechseln zu wollen.
Nun gibt es noch die Variable innodb_buffer_pool_instances. Da ich mir noch die neuen Möglichkeiten aneignen muss, wurden dieTests auch mal mit innod_buffer_pool_instancs 4,8,16 durchgeführt. Der Default von innodb_buffer_pool_instances ist bei 1.
(Das Kürzel b4 gibt an wieviel BufferPoolInstanzen konfiguriert sind. b4->4, b8->, b16->16)
SELECT
hot:

uniform:

Keine großen Sprünge. 5.5 hat ab hoher concurrency die Nase vorne. Mehrere Bufferpoolinstancen sind hier wohl förderlich. Trotzalledem ist der gößtmögliche Durchsatz bei allen mit einer concurrency von 64. Nach einer Ablösung von MySQL 5.1 sieht es beim maximalen Durchsatz nicht aus.
UPDATE
hot:

uniform:

Das ist mal eine Hausnummer.
Sprich bei diesem Workload und Konfiguration ist innodb_buffer_pool_instances ein MUST. Sonst wird der Aufstieg zu 5.5 ein Abstieg *Schenkelklopfer*.
Zumindest kann ich mir gut Vorstellen, dass die Suche nach dem richtigen Wert für innodb_buffer_pool_instances ähnlich turbulent wird, wie schon die Suche nach dem richtigen Wert für innodb_thread_concurrency:)
#v+
innodb-setting
innodb_buffer_pool_size = 20G
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_file_per_table
innodb_file_format=Barracuda
# innodb_buffer_pool_instances from 1(default),4,8,16
# und nur bei 5.5
innodb_buffer_pool_instances=4
#v-
96GBRam
Viel Spaß
Erkan
T
id3 from rein where ID=@id





