Mysql
如果我主要使用 innodb,如何獲得空間索引功能?
我目前的策略是在 myisam 中創建另一個包含這些空間資訊的表。然後,如果我想找到 20 個最近的企業,我將使用 join。
這是一個好主意嗎?
我這樣做的方法是添加另一個包含緯度和經度的 myisam 表。然後將原表的ID設置為輔助表的ID。當我抬頭時,我確實加入了。
SELECT DISTINCT TB.ID, TB.Latitude, TB.Longitude FROM TableBusiness AS TB TableAuxiliary as TA on TA.BusinessID=TB.ID WHERE //bla bla bla do some spatial thingy here LIMIT 0, 20
但是,myisam 空間索引非常令人失望。
我什至不能進行最近鄰搜尋。至少沒有辦法只用一個 mysql 命令來做到這一點。我必須嘗試一個小矩形,然後使矩形越來越大。
如果有,請告訴我它是什麼。
使用 MyISAM 可能是您最好的也是唯一可以使用空間索引的賭注。您可以考慮將數據儲存在 InnoDB 表中,然後根據需要將數據連續或批量導出到 myisam 表中。然後使用 myisam 表進行查詢。
如果數據很重要,我不會相信 myisam 作為儲存引擎。
好像你自己想出了解決方案。