我有一个数据库表,其中包含存储列latitude
和longitude
坐标(两者都有decimal
数据类型)。通过搜索,该表有大约 500k 行。
问题是,如果我搜索半径为 100-200 英里的行,搜索将持续大约 140 秒,这不可能投入生产。
堆栈:
- 导轨 4
- MySQL 5.5
- Geokit-rails 宝石
我想请你帮忙,如何通过地理数据加快搜索速度。我应该实现类似于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
表上没有索引。我在数据库中有一个类似的表,它也有latitude
和longitude
列,我尝试在它们上添加索引,但搜索的加载时间保持不变。