経度 X a に〇〇を表示 • 緯度 Y b , 経度 X b に〇〇を表示 • 緯度 Y c , 経度 X c に〇〇を表示 どのように検索する? 12 POIの検索における課題 SELECT * FROM POIデータ WHERE 緯度 BETWEEN Y 1 AND Y 2 AND 経度 BETWEEN X 1 AND X 2 X 1 X 2 Y 2 Y 1 緯度経度に複合インデックスを張る • キャッシュが効きにくい • 境界を含む?含まない? → もっと良い方法はないだろうか? ▪ ▪ ▪
経度 X a に〇〇を表示 • 緯度 Y b , 経度 X b に〇〇を表示 • 緯度 Y c , 経度 X c に〇〇を表示 どのように検索する? 13 POIの検索方法 SELECT * FROM POIデータ WHERE エリア IN (A, B, C, D) ▪ ▪ ▪ 分割した領域に対してindexを張る • キャッシュしやすい • カラムとして持つため どこに属しているかは一意 (境界が明確) A C D B