ログをデータベースに書き込むソフトウェアがあり、これらのログは約 2 ~ 3 か月保存されます。いつでもこれらのログにクエリを実行したいという人もいます。システムは 1 秒あたり平均 5000 行 (1000 の一括挿入) を書き込み、主キーは存在しませんが、異なる列に 6 つのインデックスがあります。ちなみに、テーブルには20列あり、外部キーはありません。
巨大なディスク サイズが必要なため、innodb テーブルを使用したくありません。ご存じのように、MyISAM テーブルのサイズは、同じ innodb テーブルよりも約 3 倍 (またはそれ以上) 小さいです。月ごとに異なるテーブルを使用し、今月より古いテーブルを圧縮する予定です。myisampack ユーティリティを使用した innodb よりも、myisam テーブルの圧縮の方が簡単です。これらの理由から、myisam テーブルを使用したいと考えています。
しかし、myisam が破損に対して安全ではないことはわかっています。myisam テーブルが破損している場合にそれらを失いたくありません。リアルタイムログに innodb を使用するように指示されました。短い期間 (5 分、1 時間、または真夜中) の後、レコードを myisam テーブルに配置したいと考えています。ただし、「alter table ... engine=myisam」コマンドを使用してテーブルを変換すると、データが膨大なため時間がかかります。
別のデータベースを使用して、innodb データを myisam テーブルにレプリケートできます。これは 1 つの代替手段です。しかし、以前はレプリケーションに問題があり、使用するかどうかわかりません。私が思う他のオプションは、レコードを二重に書き込むことです(innodbとmyisamテーブルの両方を同時に)。ただし、クエリとディスクの両方のパフォーマンスが低下します。
この状況について、あなたは私に何を提案しますか? それは、エンジン変換の提案または完全に新しいアーキテクチャの提案である可能性があります。
ありがとう、セリム