コードをレビューしていて、膨大な時間を費やしていることに気付きました
- データベースから行を取得し、
- XMLとしてフォーマットし、
- ブラウザへのAJAX GET、そして
- 私のローカルデータストアとしてハッシュされたJavaScriptオブジェクトに変換します。
更新時には、プロセスを逆にする必要があります (XML の代わりに POST を使用する場合を除く)。
Redis を検討し始めたばかりなので、オブジェクトをサーバー上のキーと値のストアに保持し、JSON を使用して JS クライアントに直接転送するだけで、膨大な時間を節約できると考えています。しかし、私の弱い心は、SQL DB を離れることによって何をあきらめるかを予測できません (つまり、GROUP BY/HAVING クエリをあきらめるのが怖いです)。
私のデータについては、次のものがあります。
- 多対多の関係、つまり obj-tags、obj-groups など。
- そのような組み合わせによるオブジェクトのクエリ、つまり WHERE タグ IN ('a', 'b','c') AND グループイン ('x','y')
- 自己結合、つまり各オブジェクトのすべてのタグ WHERE tag='a' (sql group_concat())
- 多くの外部結合、つまり OUTER JOIN rating ON o.id = rating.obj_id
- REDIS の強みと思われるフィード
Key-Value と SQL DB をうまく混在させるにはどうすればよいでしょうか?
たとえば、SQL RANGE クエリ (つまり、WHERE obj.id IN (1,4,6,7,8,34,876,9879,567,345, ...)、またはその逆?
アイデア/提案を歓迎します。