Python で記述され、プライマリ データストアとして mysql を使用する Web アプリを実行しています。Amazon RDS に数千万行の大きなテーブルがあり、10 倍大きくなると予想しています。主キーに基づいて数百のランダムな行を選択する多くのクエリを実行します (「select * from table where id IN (ids)」のように、id は主キーです)。ときどきかなり遅くなり、30 秒以上かかります。最終的にはテーブルを分割する必要がありますが、memcache にキャッシュされた行のコピーを保持しようと考えています。select クエリを実行する前に、multi_get を memcache に送信します。私たちのワークフロー (多くの更新を実行します) を考えると、memcache バージョンにも行への変更を先制的に書き込む場合にのみ、大幅なパフォーマンスの向上が得られます。
誰かがこのようなセットアップを使用したことがあるかどうか、また、これを適切に処理する ORM や他の便利なツール (mysql バイナリ ログから変更をプルして memcache に送信するなど) があるかどうか疑問に思っています。これの最も危険な部分は、誰かが mysql で更新する memcache の行を更新するのを忘れるか、少なくとも無効にする場合です。
ありがとう!