纬度和经度,2个指数或1个综合指数?

时间:2012-11-21 21:43:14

标签: mysql sql

我很好奇最有效的索引方法是在例如基于地图的商店定位器的上下文中。

  1. 用户将地图平移/缩放到他们想要查看的区域。
  2. 应用程序确定视口的边界,即lat / lng的最大/最小值。
  3. 以基本形式发出查询:

    SELECT *
    FROM locations
    WHERE lat BETWEEN $min_lat AND $max_lat
        AND lng BETWEEN $min_lng AND $max_lng
    

    最好使用单个复合INDEX(lat, lng),还是使用两个单独的索引,例如INDEX(lat), INDEX(lng)

1 个答案:

答案 0 :(得分:1)

由于latlng彼此独立,并且您在where子句中单独使用它们而未合并,我会选择单独的索引。