gpt4 book ai didi

mysql - Geokit-rails + MySQL : How to speed up search through latitude and longitude?

转载 作者:行者123 更新时间:2023-11-29 00:07:09 24 4
gpt4 key购买 nike

我有一个数据库表,其中包含存储 latitudelongitude 坐标的列(两者都具有 decimal 数据类型)。通过搜索,该表有大约 50 万行。

问题是,如果我搜索半径为 100-200 英里的行,搜索将持续大约 140 秒,这不可能投入生产。

堆栈:

  1. rails 4
  2. MySQL 5.5
  3. Geokit-rails gem

我想向您寻求帮助,了解如何通过地理数据加快搜索速度。我应该执行类似于 kayak.com 的搜索吗? , 在哪里向用户显示一些结果并且搜索仍在后台运行?

提前谢谢你。

编辑:“商店”方案

  create_table "stores", force: true do |t|
t.string "store_name"
t.string "address"
t.string "city"
t.string "state"
t.string "county"
t.string "zip_code"
t.decimal "latitude", precision: 10, scale: 6
t.decimal "longitude", precision: 10, scale: 6
end

表上没有索引。我在数据库中有一个类似的表,它也有 latitudelongitude 列,我试图在它们上添加索引,但搜索的加载时间保持不变。

最佳答案

我会首先在经度和纬度列上放置一个组合索引,如下所示:

class AddIndexToStoresLongitudeLatitude < ActiveRecord::Migration
def up
add_index :stores, [:latitude, :longitude]
end

def down
remove_index :stores, [:latitude, :longitude]
end
end

关于mysql - Geokit-rails + MySQL : How to speed up search through latitude and longitude?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com