Unterstützt AWS RDS die MEMORY Storage Engine?

10

Titel sagt alles. Seltsamerweise kann ich hier kein Ergebnis finden.

Marc L.
quelle
RE: Rollback: Diese Frage betraf von Anfang an MySQL, und die akzeptierte Antwort zeigt dies an. Die Aurora-Antwort (die ich positiv bewertet habe) ist sehr hilfreich und bezieht sich ausreichend auf die ursprüngliche Frage (RDS), sodass Google hier Anfragen sendet. Trotzdem bleibt die Frage, was es war.
Marc L.

Antworten:

6

Ja tut es. Woher ? Führen Sie diese Abfrage in der RDS-Instanz aus:

mysql> select * from information_schema.engines where engine='MEMORY'\G
*************************** 1. row ***************************
      ENGINE: MEMORY
     SUPPORT: YES
     COMMENT: Hash based, stored in memory, useful for temporary tables
TRANSACTIONS: NO
          XA: NO
  SAVEPOINTS: NO
1 row in set (0.01 sec)

Da SUPPORTsagt Yes, ist die Antwort ja.

Sie können auch SHOW ENGINES;alle unterstützten oder nicht unterstützten Engines in RDS anzeigen.

RolandoMySQLDBA
quelle
Ihre Antwort ist im Allgemeinen hilfreich, jedoch nicht immer wahr, da die Antwort nicht unbedingt binär ist. Wie Barry in der anderen Antwort hervorhebt, hat Aurora MySQL die einzigartige Einschränkung der Speicher-Engine mit temporären Tabellen und nicht richtigen global sichtbaren Tabellen, obwohl Aurora SUPPORTin der hier gezeigten Abfrage "JA" ausgibt.
Christopher McGowan
@ChristopherMcGowan Ich weiß, meine Antwort ist eine Vereinfachung. Man muss die Dokumentation lesen, um zu sehen, welche Grenzen oder welche Art von Moratorium für eine Speicher-Engine in RDS oder Aurora gelten. Deshalb wundert es mich nicht, dass die andere Antwort mehr Stimmen hat.
RolandoMySQLDBA
11

Diese Antwort gilt für AWS Aurora, nicht direkt für MySQL RDS.

Nur weil SHOW ENGINESdie Datenbank über die MEMORYSpeicher-Engine verfügt, heißt das nicht, dass Sie sie tatsächlich verwenden können. Wir haben festgestellt, dass in AWS Aurora der SHOW ENGINES;Aufruf Ihnen mitteilt, dass die MEMORYEngine unterstützt wird. Wenn Sie jedoch versuchen, die Engine in MEMORYeine Engine zu ändern oder eine nicht temporäre Tabelle mit der Engine zu erstellen, MEMORYerhalten Sie eine InnoDB-Engine, da Aurora nur InnoDB unterstützt. Wenn Sie den Motorwechsel ausführen, erhalten Sie eine Warnung, dass die InnoDB-Engine verwendet wurde.

Folgendes habe ich vom AWS-Support erhalten:

Aurora bietet nur Unterstützung für die InnoDB-Speicher-Engine für reguläre Tabellen. Andere Engines als InnoDB werden nur für temporäre Tabellen auf Sitzungsebene unterstützt. Wenn Sie in der Standardkonfiguration versuchen, eine Tabelle mit einer anderen Speicher-Engine als InnoDB zu erstellen, erstellt Aurora die Tabelle implizit als InnoDB. Temporäre Tabellen auf Sitzungsebene sind nicht persistent und werden nach Abschluss der Sitzung gelöscht.

Barry Coleman
quelle