Bekannte Probleme und Einschränkungen für RDS für MariaDB - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bekannte Probleme und Einschränkungen für RDS für MariaDB

Die folgenden Punkte sind bekannte Probleme und Einschränkungen bei der Verwendung von RDS für MariaDB.

Anmerkung

Diese Liste ist nicht umfassend.

MariaDB-Dateigrößenlimits in Amazon RDS

Bei MariaDB-DB-Instances beträgt die Maximalgröße einer Tabelle 16 TB, wenn InnoDB-Datei-pro-Tabelle-Tablespaces verwendet werden. Dieses Limit beschränkt auch den Tabellenraum des Systems auf maximal 16 TB. InnoDB-Datei-pro-Tabelle-Tablespaces (mit Tabellen in jeweils einem eigenen Tablespace) werden für MariaDB-DB-Instances standardmäßig festgelegt. Dieses Limit hängt nicht mit dem maximalen Speicherlimit für MariaDB-DB-Instances zusammen. Weitere Informationen über das Speicherlimit finden Sie unter Amazon RDS DB-Instance-Speicher.

Die Option der InnoDB-Tabellenräumen (innodb_file_per_table) bietet abhängig von der Anwendung sowohl Vor- als auch Nachteile. Um den besten Ansatz für Ihre Anwendung zu bestimmen, lesen Sie File-per-table tablespaces in der MySQL-Dokumentation.

Es wird nicht empfohlen, die Tabellen bis zur maximal möglichen Größe anwachsen zu lassen. Generell hat es sich bewährt, Daten in kleinere Tabellen zu partitionieren, wodurch sich die Leistung und die Wiederherstellungszeiten verbessern.

Eine Möglichkeit, mit der Sie eine große Tabelle in kleinere Tabellen aufteilen können, ist die Partitionierung. Die Partitionierung verteilt Teile Ihrer großen Tabelle in separate Dateien auf der Basis von Regeln, die Sie angeben. Wenn Sie beispielsweise Transaktionen nach Datum speichern, können Sie Partitionierungsregeln erstellen, mit denen ältere Transaktionen in separate Dateien partitioniert werden. Anschließend können Sie regelmäßig die historischen Transaktionsdaten archivieren, die für Ihre Anwendung nicht ständig verfügbar sein müssen. Weitere Informationen finden Sie unter Partitionierung in der MySQL-Dokumentation.

So ermitteln Sie die Größe aller InnoDB-Tabellenräume
  • Verwenden Sie den folgenden SQL-Befehl, um zu bestimmen, ob eine Ihrer Tabellen zu groß ist und evtl. partitioniert werden sollte.

    Anmerkung

    Für MariaDB 10.6 und höher gibt diese Abfrage auch die Größe des Tabellenraums des InnoDB-Systems zurück.

    Bei MariaDB-Versionen vor 10.6 können Sie die Größe des Tabellenraums des InnoDB-Systems nicht ermitteln, indem Sie die Systemtabellen abfragen. Es wird empfohlen, ein Upgrade auf eine neuere Version durchzuführen.

    SELECT SPACE,NAME,ROUND((ALLOCATED_SIZE/1024/1024/1024), 2) as "Tablespace Size (GB)" FROM information_schema.INNODB_SYS_TABLESPACES ORDER BY 3 DESC;
So ermitteln Sie die Größe von Nicht-InnoDB-Benutzertabellen
  • Verwenden Sie den folgenden SQL-Befehl, um zu bestimmen, ob eine Ihrer Nicht-InnoDB-Benutzertabellen zu groß ist.

    SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH+DATA_FREE) / 1024 / 1024/ 1024), 2) As "Approximate size (GB)" FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema') and ENGINE<>'InnoDB';

So aktivieren Sie InnoDB-Datei-pro-Tabelle-Tabellenräume

  • Setzen Sie den innodb_file_per_table-Parameter in der Parametergruppe für die DB-Instance auf 1.

So deaktivieren Sie InnoDB-Datei-pro-Tabelle-Tabellenräume

  • Setzen Sie den innodb_file_per_table-Parameter in der Parametergruppe für die DB-Instance auf 0.

Weitere Informationen über das Updaten von Parametergruppen finden Sie unter Parametergruppen für Amazon RDS.

Wenn Sie InnoDB-Datei-pro-Tabelle-Tabellenräume aktiviert oder deaktiviert haben, können Sie den Befehl ALTER TABLE ausführen. Sie können diesen Befehl verwenden, um eine Tabelle vom globalen Tablespace in einen eigenen Tablespace zu verschieben. Oder Sie können eine Tabelle aus ihrem eigenen Tablespace in den globalen Tablespace verschieben. Im Folgenden sehen Sie ein Beispiel.

ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;

Reserviertes Wort InnoDB

InnoDB ist ein reserviertes Wort für RDS for MariaDB. Sie können diesen Namen für eine MariaDB-Datenbank nicht verwenden.

Benutzerdefinierte Ports

Amazon RDS blockiert Verbindungen zum benutzerdefinierten Port 33060 für die MariaDB-Engine. Wählen Sie einen anderen Port für Ihre MariaDB-Engine.

Performance Insights

InnoDB-Zähler sind in Performance Insights for RDS für MariaDB Version 10.11 nicht sichtbar, da sie von der MariaDB-Community nicht mehr unterstützt werden.