latitude
格納する列と座標を含むデータベース テーブルがありますlongitude
(どちらもdecimal
データ型です)。テーブルには、検索が行われるまでに約 50 万行あります。
問題は、半径 100 ~ 200 マイルの行を検索すると、検索に約 140 秒かかり、本番環境に置くことができないことです。
スタック:
- レール4
- MySQL 5.5
- 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
テーブルにインデックスはありません。latitude
データベースにも列を持つ同様のテーブルがあり、longitude
それらにインデックスを追加しようとしましたが、検索の読み込み時間は変わりませんでした。