数十万件のレコードをメモリで持つとか

本当は、最近はWebより、iPhoneとかのほうが楽しいけど。

ただ、仕事なので、.NET + Oracle とか多いです。そこまでの興味はないが。

 

で、ちょっと前の案件の話。

 

数十万件のレコードをメモリで持つ

Googleサジェストみたいな実装で、数十万件のレコードから入力キーワードで、候補を出す処理で、

お客さんから散々「遅い遅いなんでGoogleみたいにできないの?」って言われて、

Googleと同じこと出来るのだったら、とっくに転職してるわ、と思いつつ、

SQLのインデックスやらなんやら色々弄ったけど、いいような効果が出なくて、

結局辿り着いたのが、JOINした結果を全てメモリで持ってしまい、メモリ上テーブルに対して検索を行うという施策。

これで何とか解決した。

(もっと言えば、1時間に1回、バッチ処理でキャッシュを更新する)

ってか、APサーバーのメモリが8GBぐらいあるんだけど、数十万程度だったら、メモリに乗ってしまうんだねぇ。。。