こんにちは、令和トラベルでバックエンドエンジニアをしている木村です。 MySQLにはSpatial index(R-tree index)という交差や包含など空間的な基準に基づいたインデックスが存在します。本ブログ記事では、このインデックスを使った地理的検索のパフォーマンス検証についてご紹介します。 マップ検索機能と前提条件 マップ検索機能について この機能は、地図からホテルをマップ検索できるものです。地図上にホテル価格が表示され、自分の行きたい場所の価格相場の把握にも便利です。 この機能実現のために、APIの仕様としては以下二つの担保が必要となります。 アプリ上に表示されているマップのエリア内に含まれるホテルを返すこと マップの移動や拡大・縮小に伴う操作でホテルを再取得する必要があり、そういった操作に耐えうるレスポンス速度であること 前提条件 ホテルのデータは70万軒以上 検証環境 Ma