1

SPATIAL over BOUNDING 的好处

使用 SPATIAL 查询而不是使用边界框的简单 MySQL 查询有什么好处?

例如,如果我想查找属于某个多边形内的所有位置:

像这样的东西:

边界框示例

SELECT * FROM geoplaces 
WHERE geolat BETWEEN ? AND ?
AND geolng BETWEEN ? AND ?

据我了解,唯一真正的好处是空间也会影响地球的曲率?

哪种方法也最快?

4

1 回答 1

4

好处:

  1. 您可以使用点和矩形以外的形状,以及“is-in”以外的操作。
  2. 如果您可以使用 SPATIAL 索引,性能会好几个数量级(当然取决于数据的大小和性质)。

缺点:

  1. 空间对象是二进制 blob - 需要小心处理它们(例如,您通常不能复制粘贴值)。
  2. mySQL 中的空间索引仅适用于 MyISAM 表。
  3. mySQL 的支持有点原始。很多操作还没有实现

如果您的数据库很大,并且您需要像示例中的那样快速搜索,那么您绝对应该使用 SPATIAL 索引。

于 2011-03-27T23:50:40.417 回答