62

像大多数普通的 PHP Web 开发人员一样,我使用 MySql 作为 RDBMS。MySql(也和其他 RDBMS 一样)提供了 SPATIAL INDEX 功能,但我不太明白。我已经用谷歌搜索了它,但没有找到明确的现实世界例子来澄清我对它的坏了解。

有人可以向我解释一下什么是空间索引,我应该什么时候使用它?

4

4 回答 4

23

您可以使用空间索引来索引地理对象 - 形状。空间索引使高效搜索空间重叠的对象成为可能

于 2010-02-13T03:37:10.487 回答
7

空间索引就像普通索引一样,不同之处在于空间对象不是一维数据点,而是在更高维空间(例如二维)中,因此普通索引(如 BTree)不适合索引此类数据。著名的空间索引技术是 R-tree(在维基百科上谷歌)

于 2013-05-03T20:33:09.127 回答
5

当我们需要存储一些地理数据来存储位置或者我们需要存储与形状相关的数据时,我们可以使用它。

例如,假设您正在尝试开发一个应用程序来帮助人们找到他们附近的餐馆、酒吧、酒吧和其他聚会场所。简而言之,这将是一个位置发现平台。

从后端的角度来看,我们需要存储这些位置的地理数据,例如纬度和经度。然后我们需要编写函数来计算用户和位置之间的距离(显示位置离他/她有多远)。使用相同的函数,我们可以设计一种算法来找到离用户最近的地方或在他/她的给定半径内。

您可能会在这里找到更好的示例:- https://medium.com/sysf/playing-with-geometry-spatial-data-type-in​​-mysql -645b83880331

于 2020-09-16T05:49:38.847 回答
-6

空间索引的使用最好用于精确匹配值查找,而不是范围扫描。它主要在 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-实验室发布/

于 2015-02-09T13:17:27.140 回答