大部分に最適化
データが増えてくることによりパフォーマンスに問題が出ると大変ですね
たいていはRDBで正規化した物理設計になってると思いますが、そうなると読み取り、特に一覧の取得は大量のJOINが必要になりがちなので特に厳しいケースが多いと思います。
しかもJOINのそれぞれは一部のユースケースに対応するためであることがまあまあ多いんじゃないかと思います。
今週の事象
今週というか最近取り組んでた課題なんですが、検索のユースケースの9割が一部の条件だけでした。
で、そのためならほとんどJOINが不要でそれならパフォーマンスの問題はほぼなかったです。
なのですが、全部の検索条件でパフォーマンスを出すために結構調査とかしてまあコストをかけてました。
その間、利用状況とかはそんなに考慮してなくて今思うと無駄なところにコストをかけてたなあと後から考えるとですがなってました。
コストをかけるなら
毎回そんなにうまくいく状況ではないと思いますし、顧客がNOと言えばそれまでではあるのですが、何にコストをかけるか、というのは常に考えていたいと思いました。
1割を捨てても9割に適切にコストをかけた方がリターンは大きいと思いますし、顧客へも納得してもらえる説明がしやすいんじゃないかなと思いました。