個人的に memcached を使うべきと思うシーン

memcached をどういう場面で使用するべきかについて、

現時点での考えをまとめておきます。

 

キャッシュすべきなのは "レコードユーザの閲覧履歴などユーザに紐づくレコード" だと思います.

RDBからレコードを取得するには selectをかけた時に対象レコードが分散しているため, メモリから引くことができずディスクIOが発生する可能性が大きいためです.

 

一方で, マスタテーブルから引いたレコードを保持することはあまり行わないと思います. これはマスタレコードは正しくindexが配備されていればメモリに乗り切らないサイズになることは稀であるし, またユーザごとに必要なレコードは不変であることが多いため, fcgi などのプロセスにキャッシュしておくことが可能であるためです.

 

参考