2

ほとんどすべてのデータベースが行キャッシュを内部的に実装していないことに気付きました。この質問をするのは、誰かが innodb に行キャッシュ パッチを追加しているのを見つけたからです。少なくとも、パフォーマンスの向上以外に 1 つの利点があります。つまり、クライアントに対して透過的です。

そうすることを妨げる難しい技術的な理由はありますか、それとも非常に特定のアクセスパターンに役立つという理由だけですか?

ありがとう

4

1 に答える 1

6

率直に言って、同じ行の同じバージョンを複数回取得している場合は、間違っています。データが変更される可能性が低く、複数回アクセスする必要がある場合は、原則としてデータをキャッシュする必要があります。このルールを考えると、サーバー側で DB 行をキャッシュすることが役立つ場合は、関心のあるデータのためにデータベースへのラウンドトリップが多すぎることを意味します。代わりに、クライアント側でキャッシュして削減する必要があります。往復で。データが頻繁に変更され、頻繁にアクセスする必要がある場合でも、キャッシュされたデータが古くなり、クエリを再実行する必要があるため、キャッシュは役に立ちません。キャッシュされたデータとは異なるデータを取得するだけでは役に立ちません。あなたは何が違うのかを理解する必要があり、あなたは」

その上、ほとんどのデータベースは高い同時実行パフォーマンスを実現するように設計されています。ある人物の大量の結果セットをキャッシュすると、次の人物の大量の結果セットに使用できるリソースが食い尽くされます。ユーザー数が多いシナリオでは、キャッシュを構築すると、キャッシュされたデータが破棄されて、より多くのキャッシュされたデータ用のスペースが確保される可能性があります。使い物になるほど長く持ち続けることはできません。

于 2012-09-05T02:46:49.940 に答える