1

複数の MySQL テーブルにユーザーの情報を格納するマルチテナント サイトがあります。リストの人々に関するさまざまな情報が必要な場合は、さまざまなテーブルから取得できます。

私は Memcached を使い始めたばかりで、気に入っています。人のリストをフィルタリングするこのプロセスを高速化するために使用したいと思います。

私の質問は、人々の情報を memcached に効果的に保存するにはどうすればよいかということです。クエリが処理されるときに、単純であれ複雑であれ、毎回 MySQL データベースからすべてをロードする必要はありません。複雑と言うと、複数の MySQL テーブルにクエリを実行して、必要な人のリストを見つけます。

私が持っていたいくつかの考え:

  1. すべての人々の情報 (リンクされた MySQL テーブルからの情報を含む) を memcached に保存します。次に、特定のグループの人々が必要な場合、または複雑なレポートを生成する必要がある場合は、MySQL をクエリするのではなく、memcached から人々の配列をフィルタリングします...問題は、それぞれ数百行の情報を持つ何千人もの人々がいる可能性があるということですmemcached がその量のデータを処理できるかどうかはわかりません。

  2. 新しいレポートまたはビューが作成されるたびに人を保存します。それは保存されるので、同じレポートが生成された場合、memcached からプルされます。

あなたが与えることができる洞察は大歓迎です。

4

1 に答える 1

2

memcached は、データベースではなく、キャッシュを意図しています。特に、キャッシュからすべての情報をロードして解析し、検索するよりも、特定の情報についてデータベースにクエリを実行する方が高速である可能性が高いため、大量の情報を格納しないでください。

于 2012-10-26T00:51:37.383 に答える