web-dev-qa-db-ja.com

キャッシュテーブルは、データベースの他の通常のテーブルとどのように異なりますか?

私が知りたいのは、すべてのキャッシュテーブルがデータベースに格納されている場合、データをキャッシュに保持する背後にあるロジックは何ですか。キャッシュにクエリを実行するたびに、データベースに再度アクセスするため、データベースに他の通常のテーブルが存在するのと同じです。

キャッシュテーブルはデータベースの他の通常のテーブルとどのように異なりますか?すべてのキャッシュテーブルがデータベースに存在する場合、キャッシュはどのようにパフォーマンスを向上させますか?

3
Sugandh Khanna

キャッシュテーブルには、負荷の高いクエリの結果が含まれています。多くの場合、単一のキャッシュ行に複数のクエリがあります。

不自然な例として、ノードを取り上げます。ノードをロードするときは、そのデータを含むすべての単一フィールドテーブルに結合する必要があります。さらに、追加のデータに対して個別のクエリの束を作成する必要があります。これは大量のdb負荷です。

たった1つの単一の軽いクエリを作成し、そのすべての情報を一度に取得できれば、より速くはないでしょうか?

これがキャッシュビンの目的です。キャッシュからのクエリが元の操作と同じかそれ以上のコストがかかるシナリオもあるかもしれませんが、それらはまれです。

また、キャッシュがデータベース内にある必要がないことも忘れないでください。キャッシュをメモリに移動すると、大幅な改善が得られます。

5
Clive

これがその背後にある論理です。キャッシュテーブルは、クエリの結果を保存/保存します。したがって、クエリXを毎回実行する代わりに、クエリXの結果をキャッシュテーブルに保存します。したがって、必要なのは結果を取得することだけです。

キャッシュをデータベースに保存する代わりに、可能であれば、 RedisBerdir によって維持される)または Memcached これは、データベースの使用/クエリよりもはるかに高速に値を取得します。

4
No Sssweat