哪个数据库 SQL or NOSQL 处理距离最方便?

2017-01-08 04:50:30 +08:00
 drroot

网站会有频繁的如下搜索请求: 离 <邮编 xxx> <1 公里> 内所有的 <餐馆>

以上:

  1. <邮编 xxx>为任何源地址,可以是一个 ip, 邮编,城市名字
  2. <1 公里> 为距离,也可以是 1 英里, 2 英里, 3 英里, 25 英里, 50 英里等
  3. <餐馆> 为类别,也可以是酒店等
5304 次点击
所在节点    程序员
35 条回复
drroot
2017-01-08 04:51:55 +08:00
mongoDB?
Wangxf
2017-01-08 05:05:21 +08:00
不知道为啥这么多人推荐 mongo ?仅仅因为是 js 近亲?要说成本的话大学基本是都学过数据库啊,我记得我们学的还是 mssql 。。转换成 mysql 应该也没那么麻烦吧。。
ericls
2017-01-08 05:06:49 +08:00
Postgres 做这个也很方便
shiny
2017-01-08 05:58:13 +08:00
距离是可以换算的,没那么麻烦吧
beginor
2017-01-08 06:34:04 +08:00
数据量大而且查询频繁的话,建议使用空间数据类型,前提是要有经纬度,建立空间索引,非常适合楼主这种空间查询。

主流的关系数据库都支持空间索引, MongoDB 貌似只支持 GeoRSS , 不知道是否支持空间索引。
Return2legacy
2017-01-08 06:46:07 +08:00
mysql 5.7 以上
aijam
2017-01-08 08:28:41 +08:00
ElasticSearch
srlp
2017-01-08 08:31:51 +08:00
能装在内存的话(既然你有频繁查询), http://cristian.regolo.cc/2015/07/07/introducing-the-geo-api-in-redis.html


mongodb 不太适合。
loading
2017-01-08 09:14:55 +08:00
数据库主要功能不是运算!
zeayes
2017-01-08 09:20:46 +08:00
@srlp redis 功能有限,支持不了类别。 PG+GIS
cstj0505
2017-01-08 09:22:14 +08:00
绝对是 postgresql 啊,速度快,原生支持点的数据类型,还提供相应函数, postgis 支持地理位置的处理。专业的都用这个
skydiver
2017-01-08 09:43:55 +08:00
支持 gis 最好的就是 pg 了吧
k9982874
2017-01-08 10:25:10 +08:00
mongod 和 redis 都有 geo api
mko0okmko0
2017-01-08 10:48:05 +08:00
任意直线距离,大部分常规资料库都一样快阿.
还以为是在问以道路为准的.

如果是在一个路网内.依照交通和道路状况.计算出两点之间最短交通路径.这个才是比较需要考虑图论资料库或是有特殊要化的.
cstj0505
2017-01-08 10:51:12 +08:00
@mko0okmko0 你说的这些也不需要图数据库, postgresql+postgis 完全满足要求,还提供对应的函数和索引。
liprais
2017-01-08 10:53:21 +08:00
postgis +1
jedyu
2017-01-08 11:03:03 +08:00
postgis 不二选择
lights
2017-01-08 11:23:55 +08:00
我记得 mongoDB 自带地图查询功能吧
特地找了一下官网的说明,你看一下就好了
https://docs.mongodb.com/manual/core/2dsphere/
blacklee
2017-01-08 11:47:32 +08:00
Postgres 。

我刚刚把一个用了两年多, 5500W+数据量的系统,从 MySQL 导入到 Postgres 。
Warder
2017-01-08 12:23:43 +08:00
做 gis 相关数据的应该都知道 postgres

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/332999

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX