私が知りたいのは、すべてのキャッシュテーブルがデータベースに格納されている場合、データをキャッシュに保持する背後にあるロジックは何ですか。キャッシュにクエリを実行するたびに、データベースに再度アクセスするため、データベースに他の通常のテーブルが存在するのと同じです。
キャッシュテーブルはデータベースの他の通常のテーブルとどのように異なりますか?すべてのキャッシュテーブルがデータベースに存在する場合、キャッシュはどのようにパフォーマンスを向上させますか?
キャッシュテーブルには、負荷の高いクエリの結果が含まれています。多くの場合、単一のキャッシュ行に複数のクエリがあります。
不自然な例として、ノードを取り上げます。ノードをロードするときは、そのデータを含むすべての単一フィールドテーブルに結合する必要があります。さらに、追加のデータに対して個別のクエリの束を作成する必要があります。これは大量のdb負荷です。
たった1つの単一の軽いクエリを作成し、そのすべての情報を一度に取得できれば、より速くはないでしょうか?
これがキャッシュビンの目的です。キャッシュからのクエリが元の操作と同じかそれ以上のコストがかかるシナリオもあるかもしれませんが、それらはまれです。
また、キャッシュがデータベース内にある必要がないことも忘れないでください。キャッシュをメモリに移動すると、大幅な改善が得られます。