latitude
및 longitude
좌표 (모두 데이터 유형이 decimal
)를 저장하는 열을 포함하는 데이터베이스 테이블이 있습니다. 검색을 통해 표에 약 500,000 개의 행이 있습니다.Geokit-rails + MySQL : 위도와 경도를 통한 검색 속도를 높이려면 어떻게해야합니까?
반경이 100-200 마일 인 행을 검색하면 검색이 약 140 초 동안 지속되므로 프로덕션을 수행 할 수 없습니다.
스택 :
- 레일 4
내가 지리적 데이터를 통해 검색 속도를하는 방법에 대한 도움을 요청하고 싶습니다 MySQL의 5.5
미리 감사드립니다.
편집 : '저장'계획
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
컬럼을 가진 유사한 테이블을 데이터베이스에 가지고 있는데 인덱스를 추가하려고 시도했지만 검색로드 시간은 동일하게 유지되었습니다.
해당 테이블에 대한 데이터베이스 스키마를 게시 할 수 있습니까? 해당 테이블에 대한 인덱스가 있습니까? – spickermann
당신의 코멘트 'spickermann'을 가져 주셔서 감사합니다. OP에 테이블 구성표를 추가했습니다. – user984621
이것을 확인하십시오 https://github.com/alexreisner/geocoder#advanced-querying – apneadiving