一部のMagentoテーブルはInnoDBではありませんが、すべてのテーブルをInnoDBに変換しても安全ですか?


16

AWS RDSリードレプリカを使用しています。Magentoのメモリエンジンテーブルには常に問題があります。バックアップとリードレプリカのために、RDSはInnoDBを愛しています。すべてのテーブルをInnoDBに安全に変更できますか?

さらに、AWSから次の警告が表示されます。

DBインスタンスmagento-monin-prod-dbには、InnoDBに移行されていないMyISAMテーブルが含まれています。これらのテーブルは、ポイントインタイムリストアを実行する能力に影響を与える可能性があります。これらのテーブルをInnoDBに変換することを検討してください。http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tablesを参照してください

もっともらしい答え

まだフィードバックに興味があります。24時間以内に問題が見つからない場合は、これを回答として追加します。これまでのところ、私が行った手順は安全なようです。私の最大の懸念は、Magentoのメモリエンジンテーブル(in_tmpで終わるテーブル)と、インデックス作成に与える影響でした。

ここに私がやったことがあります:

  1. SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (ENGINE = 'Memory' OR ENGINE='MyIsam') AND TABLE_SCHEMA='magento_db'

    • 私にとってこれは主に一時的なインデックステーブルとmagentoモジュールテーブルを返したので、重要なコアテーブルはそれほど多くなく、ファンがヒットした場合に別のalterテーブルを簡単に実行できるテーブルはほとんどありませんでした。
  2. 返された各テーブルに対して、私は実行しました: Alter table {table-name} ENGINE=InnoDB;

いずれのテーブルもInnoDBでない場合は、これを試してみてください。ただし、前に言ったように、インスタンスには修正が必要なコアテーブルがわずかしかありませんでした。


これを本番環境で長い間実行していますか?もしそうなら、それはどうですか-それはあなたに問題を引き起こしましたか?主に、現在MEMORYエンジンである* _tmpインデックステーブルについて考えます。
マイケルパーキン

1
異常なことに気づいていません。
タイラーズSN

確認してくれてありがとう。これを試してレポートを送ります。
マイケルパーキン

@michael parkinは、Solr検索を使用していることに留意してください。これが検索にどのような影響を与える可能性があるかを示す他の回答を参照してください。
タイラーズSN

1
私たちは、(メモリを含む)すべてのテーブルはInnoDBのよう実行し、生産拠点(MariaDB 10.0)のほとんどでこれを実行してきた-素晴らしい作品
マイケル・パーキン

回答:


11

次のいずれかが当てはまる場合、データ型をInnoDBに変更しても問題ありません。

  1. InnoDBストレージエンジンが全文検索をサポートしているMySQL 5.6.4+を使用している
  2. 基礎となるMyISAM全文検索機能に依存するデフォルトのMagento Search機能を使用していません。 そもそもその機能は面倒であり、デフォルトのMagento Searchで提供される機能セットには多くの要望が残されているので、Lucene またはSphinxまたは最高のAlgoliaホスト検索を使用することをお勧めします。

個人的には、Magento DB Repair Toolを使用してこれを行うことをお勧めします。これにより、リスクを最小限に抑え、他のDB設定のドリフトや問題をチェックすることもできます。InnoDBは理想的なエンジンですが、それでもフルテキストの制限です。


1
ソーラー検索を使用しています。したがって、検索に関する限りは明確にする必要があります。
タイラーズSN

私はInnoDBを理想的なエンジンとはまったく考えていません。多くの検索クエリがある場合、MyISAMと比較して非常に遅いです。InnoDBは更新を行う方が速く、ほとんどのクエリは更新であるため、より高速であるとよく耳にします。私は反対の合計を参照してください。私が持っているすべてのサイトには、クエリを更新/追加する検索クエリがはるかに多くあります。すべてのテーブルをInnoDBに切り替えてみましたが、ページのロード時間は基本的に遅延なし(0.1秒程度)から10秒になりました!速度の理想的なエンジンであり、全文検索をサポートしているため、すべてをMyISAMに変換しました。
ティムエクケル

ティム、私は「KIND」の私は@ベン・lessani-sonassiはちょうどフラットアウトであることをもう一度時間&を見て、正しい証明&きた主な理由は、同意MySQLはめったに全体のPERF上REALドラッグではありませんワット/他のシステムの#ものロード時でもサブ800ms応答の最適化が必要 BUT InnoDBがキーb / c Mage CoreはDB〜10Xに書き込み、各ユーザーの「ビュー」アクションをログに記録し、Solrは検索パフォーマンスと品質に最適です:)
Bryan 'BJ' Hoffpauir Jr.

1
それでは、InnoDBと想定されるものを変換すると、これらのすべての外部キー関係がどのように処理され、それらのfkey関係からのカスケードでの削除に依存する削除はどの程度完了しますか?言い換えると、適切な関係を持たないことによって残されるごみをどのように処理しますか?
Fiasco Labs

@FiascoLabsこのコメントスレッドをチェックしてからしばらく経ちましたが、Q / Aの焦点はFROM MyISAMからInnoDBに変換することです。あなたが言及したリレーショナル機能を備えているのは、おそらくInnoDBでしょう。MyISAMテーブルは、MySQLの5.7のようFK者や取引をサポートしていないのにInnoDBはありません、それはかかわらSQL標準から少し外れた
ブライアン「BJ」Hoffpauirジュニア


2

MySQLのデフォルトエンジンをInnoDBに変更したばかりで、Magentoのテーブルのほとんどが奇跡的にInnoDBに変換されました(まだMyISAMであり、一部はメモリです)。

私はこれを共有すると思った...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.