簡體   English   中英

什么是空間索引,我應該什么時候使用它?

[英]What is a SPATIAL INDEX and when should I use it?

像大多數普通 PHP Web 開發人員一樣,我使用 MySql 作為 RDBMS。 MySql(與其他 RDBMS 一樣)也提供空間索引功能,但我不太了解。 我已經用谷歌搜索了它,但沒有找到清晰的現實世界的例子來澄清我對它的不了解。

有人可以向我解釋一下什么是空間索引,我應該什么時候使用它?

您可以使用空間索引來索引地理對象 - 形狀。 空間索引使高效搜索空間重疊的對象成為可能

空間索引就像普通索引,區別在於空間對象不是一維數據點,而是位於更高維度的空間(例如2D)中,因此普通索引(例如BTree)不適合對此類數據進行索引。 著名的空間索引技術是 R-tree(在 wikipedia 上搜索)

當我們需要存儲一些用於存儲位置的地理數據或者我們需要存儲與形狀相關的數據時,我們就可以使用它。

例如,假設您正在嘗試開發一個應用程序,幫助人們找到附近的餐館、酒吧、酒吧和其他聚會場所。 簡而言之,這將是一個位置發現平台。

從后端的角度來看,我們需要存儲這些位置的地理數據,如緯度和經度。 然后我們需要編寫函數來計算用戶和位置之間的距離(以顯示位置離他/她有多遠)。 使用相同的函數,我們可以設計一個算法來找到離用戶最近的地方或距離他/她給定半徑內的最近地點。

您可能會在這里找到更好的想法:- https://medium.com/sysf/playing-with-geometry-spatial-data-type-in​​-mysql-645b83880331

使用空間索引最適合搜索精確匹配值查找,而不是范圍掃描。它主要在 MyISAM 表中支持,但從 MySQL 5.7.4 LAB 版本開始,Innodb 也支持。

參考資料:- http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html http://mysqlserverteam.com/innodb-spatial-indexes-in-5-7-4-實驗室發布/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM