Mysql

用於儲存城市邊界框和名稱的 MySQL 數據庫

  • May 22, 2017

我需要設計一個 mysql 數據庫,其中包含一個僅支持單個查詢的城市表 - 給定一個點,返回它所在的城市(或多個城市)。我有每個城市的邊界框。儲存城市邊界框的列應該是什麼樣子才能充分利用 mysql 的空間索引、多個 POINT 列?多邊形?查詢是什麼樣的。

我見過的關於空間索引的大多數討論都涉及逆問題 - 給定一個邊界框,返回具有位於邊界框內的 POINT 列的條目集,他們可以使用 MBRWITHIN 來獲得。

(不是完整的答案,但評論太長了。)

有 200 個帶有“矩形”邊界框的城市,幾乎任何事情都可以。即使是沒有SPATIAL索引但帶有INDEX(latitude), INDEX(longitude).

另一方面,300 萬個城市需要一些認真的索引。 SPATIAL,正如您所問的那樣,可能是“正確”的方法。

是一種無需SPATIAL, usingPARTITIONing和特殊程式碼的有效方法。(但是,給出的程式碼針對的是不同的問題,所以不能直接適用。)

引用自:https://dba.stackexchange.com/questions/173007