1

挿入および更新操作にはMYSQLInnoDBエンジンを使用します。クエリのパフォーマンスを向上させるために、メモリテーブルを使用して最新のデータを格納することを検討しています。過去2か月のデータ。

サーバーの起動時にメモリテーブルにデータをインポートするようにMySQLを構成できますが、実際のビジネスデータは常に更新されるため、InnoDBテーブルからMeomoryテーブルにデータを頻繁に同期する必要がありますが、必要なときにMySQLサーバーを再起動することはできません。データを同期します。

MySQLを再起動せずにデータを同期する方法を誰かが知っていますか?

4

1 に答える 1

2

通常、これはトリガーを使用して行います。私の最初のアイデアは、2つの部分でそれを行うことです。

1)innodbテーブルに挿入、更新、削除のトリガーを作成し(発生した場合)、メモリテーブルに同じ変更を加えます。特定の行がメモリテーブルから削除されたことに依存するロジックがないことを確認してください。過去2か月、その後いくつかの行が保持されます。

2)バックグラウンドジョブを作成して、古いデータのメモリテーブルをクリアします。あなたがそれに対して高い負荷を持っているならば、一度に数個の古い列をかじる頻繁な仕事を考えてください。

別の解決策は、innodbテーブルを時間でパーティション化してから、次のようなものが含まれていることを確認することです。where time > subdate(now(), interval 2 month)

于 2012-04-06T07:50:33.607 に答える