InnoDB Buffer Pool
InnoDB ist das Standard-Speichersystem für aktuelle MySQL- oder MariaDB-Installationen.
Hintergrund
InnoDB ist das Standard-Speichersystem für aktuelle MySQL- oder MariaDB-Installationen. Soweit nicht anders angegeben, werden Tabellen in diesem Speichersystem abgelegt.
Mit der SQL-Option ENGINE
können Tabellen auch explizit mit InnoDB angelegt werden:
CREATE TABLE t (i INT) ENGINE = InnoDB;
Alternativ können Tabellen auch nachträglich zu InnoDB "konvertiert" werden:
ALTER TABLE t ENGINE=InnoDB;
Teil dieses Speichersystems ist der sogenannte "Buffer Pool", ein Bereich im Arbeitsspeicher (RAM), der für InnoDB-Daten reserviert wird. Datenbank-Operationen auf Daten im Buffer Pool werden schneller ausgeführt, da diese im RAM vorgehalten werden und nicht vom Massenspeicher (SSD) gelesen werden müssen.
Die Größe des Buffer Pools hat dabei maßgeblich Einfluss auf die Datenbankserver-Performance und wird über die Option "innodb_buffer_pool_size" konfiguriert. Für eine optimale Performance sollte die Menge aller vorhandenen InnoDB-Daten aus allen Datenbanken Platz im Buffer Pool finden.
Lösung
Um die MySQL Performance zu optimieren, überprüfen bitte Sie die aktuelle Größe Ihrer InnoDB-Tabellen mit diesem MySQL-Befehl:
select sum(DATA_LENGTH) + sum(INDEX_LENGTH) FROM information_schema.TABLES WHERE ENGINE like "InnoDB" AND table_schema not in ("mysql", "performance_schema", "information_schema")
Die Größe des konfigurierten InnoDB Pools kann zusätzlich mit diesem Befehl überprüft werden:
show variables like "innodb_buffer_pool_size";
Da für die etwaige Änderung der "innodb_buffer_pool_size" in den Konfigurationsdateien des Datenbankservers root-Rechte benötigt werden, wenden Sie sich für die Anpassung der Werte bitte an unseren Support. Dieser wird dann den Wert an die Menge Ihrer InnoDB-Daten anpassen. Bitte beachten Sie, dass es hierbei nötig sein, den RAM des Clusters zu erhöhen, damit dieser den größeren Buffer Pool aufnehmen kann.