数十万件のレコードをメモリで持つとか
本当は、最近はWebより、iPhoneとかのほうが楽しいけど。
ただ、仕事なので、.NET + Oracle とか多いです。そこまでの興味はないが。
で、ちょっと前の案件の話。
数十万件のレコードをメモリで持つ
Googleサジェストみたいな実装で、数十万件のレコードから入力キーワードで、候補を出す処理で、
お客さんから散々「遅い遅いなんでGoogleみたいにできないの?」って言われて、
Googleと同じこと出来るのだったら、とっくに転職してるわ、と思いつつ、
SQLのインデックスやらなんやら色々弄ったけど、いいような効果が出なくて、
結局辿り着いたのが、JOINした結果を全てメモリで持ってしまい、メモリ上テーブルに対して検索を行うという施策。
これで何とか解決した。
(もっと言えば、1時間に1回、バッチ処理でキャッシュを更新する)
ってか、APサーバーのメモリが8GBぐらいあるんだけど、数十万程度だったら、メモリに乗ってしまうんだねぇ。。。