Ich verwende AWS RDS Read Replica. Es gibt ständig Probleme mit den Memory Engine-Tabellen von Magento. Für Backup und Read Replicas liebt RDS InnoDB. Kann ich alle Tabellen sicher auf InnoDB umstellen?
Zusätzlich bekomme ich folgende Warnung von AWS:
DB-Instanz magento-monin-prod-db enthält MyISAM-Tabellen, die nicht nach InnoDB migriert wurden. Diese Tabellen können sich auf Ihre Fähigkeit auswirken, Wiederherstellungen zu bestimmten Zeitpunkten durchzuführen. Ziehen Sie in Betracht, diese Tabellen in InnoDB zu konvertieren. Weitere Informationen finden Sie unter http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tables
Plausible Antwort
Ich bin immer noch an Feedback interessiert. Ich werde dies als Antwort hinzufügen, wenn ich innerhalb der nächsten 24 Stunden keine Probleme finde. Die Schritte, die ich unten unternommen habe, scheinen bisher sicher zu sein. Meine größte Sorge galt den Memory Engine-Tabellen von Magento (Tabellen mit der Endung in_tmp) und den möglichen Auswirkungen auf die Indizierung.
Folgendes habe ich getan:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (ENGINE = 'Memory' OR ENGINE='MyIsam') AND TABLE_SCHEMA='magento_db'
- Für mich gab es hauptsächlich temporäre Indextabellen und Magento-Modultabellen, also nicht viele wichtige Kerntabellen, um die man sich Sorgen machen muss, und nur wenige Tabellen, die ich problemlos ausführen kann, wenn etwas den Fan trifft.
Für jeden zurückgegebenen Tisch habe ich ausgeführt:
Alter table {table-name} ENGINE=InnoDB;
Ich wäre nervös, dies zu versuchen, wenn keine Ihrer Tabellen InnoDB sind. Wie ich bereits sagte, gab es auf meiner Instanz nur wenige Kerntabellen, die geändert werden mussten.
Antworten:
Es ist in Ordnung, den Datentyp in InnoDB zu ändern, sofern eine der folgenden Bedingungen erfüllt ist:
Persönlich würde ich empfehlen, dies mit dem Magento DB Repair Tool zu tun, um das Risiko zu minimieren und auch nach anderen Abweichungen oder Problemen bei der DB-Konfiguration zu suchen. InnoDB ist die ideale Engine, ungeachtet der Volltextbeschränkungen .
quelle
Afaik sollten Sie nicht alle Tabellen in InnoDB konvertieren.
catalogsearch_fulltext
sollte MyISAM bleiben, da InnoDB keine Volltextsuche unterstützt, zumindest nicht bis MySQL 5.6 (iirc).Für alle anderen Tabellen sollte es jedoch sicher sein.
quelle
Ich habe gerade die MySQL-Standard-Engine in InnoDB geändert und die meisten meiner Magento-Tabellen haben sich auf wundersame Weise in InnoDB verwandelt (einige sind immer noch MyISAM und einige sind Memory).
Ich dachte nur, ich würde das teilen ...
quelle