適切なエンジニアリングで検索速度を10倍高速化する
(engineering.ab180.co)状況に合った過剰ではないエンジニアリングで検索サービスを改善した事例です。
問題の認識
- 遅くなる検索サービス
- Joinと検索のための正規表現の使用による複雑性の問題を認識
問題解決戦略
- 当初はElasticsearchを検討していた
- メインDBとのリアルタイム性や、大量の永続保存データを扱う必要があるためコストの課題があった
- 単純化した検索専用テーブルを構成し、検索クエリを構築
- データ投入のためにMySQL Triggerを適用
成果
- 3分かかっていたクエリを2秒に改善
- 過剰ではないエンジニアリングで短期間に顧客価値を提供
2件のコメント
アクセス量の多い大規模サイトを作る際に使う、1つのデータに対するテーブルを複数作って用途を分ける方法を適用しましたね。
顧客向け・管理者向けのように2つに分けることもありますが、検索用に用途を指定してうまく適用した事例ですね
DB分野はあまり詳しくないので、こういう情報記事を読むと不思議で面白いですね。