我正在开发一个应用程序,用户可以在其中基于其当前位置请求数据。因此,举例来说,我在世界各地都有大量本地商店,当用户点击查询时,只会查询其位置附近的商店以进行匹配。与tinder一样,数据库中有很多人,但是一个用户只能看到他所在位置附近的人。数据库的结构必须如何构造,导致我想仅查询整个数据库池(可能有百万个条目)来查找与您的地理位置匹配的人员,这是不好的做法?相似应用程序使用什么架构?感谢您的提示。
答案 0 :(得分:-1)
我想说,查询整个数据库池并让数据库负责优化实际上是一种好习惯。但是,在定义表时需要小心,以使这些查询有效。
特别是,您需要在列上有一个空间二维索引。 PostGIS非常适合:http://revenant.ca/www/postgis/workshop/indexing.html
然后,当您查询时,使用ST_DWithin。
如果您有兴趣了解在内存/磁盘上布局时的实际情况,请从r-tree索引开始:https://en.wikipedia.org/wiki/R-tree