什么是空间索引以及何时使用它?

dem*_*ian 43 mysql indexing spatial-index

像大多数普通的PHP Web开发人员一样,我使用MySql作为RDBMS.MySql(也像其他RDBMS一样)提供了SPATIAL INDEX功能,但我不是很好.我已经google了它,但没有找到明确的现实世界的例子来澄清我对它的不良知识.

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

Rol*_*man 18

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

  • 虽然非常具体[创建高性能空间数据库](http://sqlbits.com/Sessions/Event5/creating_high_performance_spatial_databases)是一个很棒的视频,用于了解空间索引如何与其他索引非常不同. (4认同)

小智 7

空间索引是象与此不同的普通索引空间对象不是1D数据点,而在高维空间(例如2D),并且因此普通指标如B树不适合用于索引这样的数据.众所周知的空间索引技术是R-tree(谷歌在维基百科上)


小智 7

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

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

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

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