共有キャッシュ(memcachedなど)で何かを検索するのは、ローカルキャッシュで検索するよりも遅いというのは正しいです(これは、「レプリケーション」の意味だと思います)。
ただし、共有キャッシュの利点は共有されることです。つまり、キャッシュの各ユーザーは、メモリがローカル キャッシュに使用された場合よりも多くのキャッシュにアクセスできます。
50 GB のデータベースと 10 個のアプリ サーバーがあり、それぞれが 1 GB のメモリをキャッシュ専用にするアプリケーションを考えてみましょう。ローカル キャッシュを使用した場合、各マシンには 1 GB のキャッシュがあり、データベースの合計サイズの 2% に相当します。共有キャッシュを使用した場合、合計データベース サイズの 20% に相当する 10 GB のキャッシュがあります。キャッシュ ヒットは、ローカル キャッシュの方が多少速くなりますが、キャッシュ ヒット率は共有キャッシュの方がはるかに高くなります。キャッシュ ミスは、いずれの種類のキャッシュ ヒットよりも天文学的にコストがかかるため、ミスの数を減らすために、わずかに遅いヒットでも支払う価値があります。
現在、正確なトレードオフは、ローカル ヒット、共有ヒット、およびミスのコストの正確な比率と、データベース上のアクセスの分散によって異なります。たとえば、すべてのアクセスがサイズが 1 GB 未満の一連の「ホット」レコードに対するものである場合、ローカル キャッシュは 100% のヒット率を示し、共有キャッシュと同じくらい優れたものになります。それほど極端でない分布でも、バランスが傾く可能性があります。
実際には、最適な構成は通常 (IMHO!) 最もホットなデータ用に小さくても非常に高速なローカル キャッシュを使用し、次にロング テール用に大きく低速のキャッシュを使用することです。おそらく、他のキャッシュ階層の形状として認識されるでしょう: プロセッサがコアごとに小さくて高速な L1 キャッシュを持ち、次に低速の L2/L3 キャッシュが単一のダイのすべてのコア間で共有され、さらに低速になる方法を考えてみてください。システム内のすべてのダイで共有されるチップ キャッシュ (実際にオフチップ キャッシュを使用する現在のプロセッサはありますか?)。