网站会有频繁的如下搜索请求: 离 <邮编 xxx> <1 公里> 内所有的 <餐馆>
以上:
- <邮编 xxx>为任何源地址,可以是一个 ip, 邮编,城市名字
- <1 公里> 为距离,也可以是 1 英里, 2 英里, 3 英里, 25 英里, 50 英里等
- <餐馆> 为类别,也可以是酒店等
网站会有频繁的如下搜索请求: 离 <邮编 xxx> <1 公里> 内所有的 <餐馆>
以上:
|
1
mongoDB?
|
|
WangxfJan 8, 2017
2
不知道为啥这么多人推荐 mongo ?仅仅因为是 js 近亲?要说成本的话大学基本是都学过数据库啊,我记得我们学的还是 mssql 。。转换成 mysql 应该也没那么麻烦吧。。
|
|
ericlsJan 8, 2017 via iPhone
3
Postgres 做这个也很方便
|
|
shinyJan 8, 2017 via iPhone
4
距离是可以换算的,没那么麻烦吧
|
|
5
数据量大而且查询频繁的话,建议使用空间数据类型,前提是要有经纬度,建立空间索引,非常适合楼主这种空间查询。
主流的关系数据库都支持空间索引, MongoDB 貌似只支持 GeoRSS , 不知道是否支持空间索引。 |
|
Return2legacyJan 8, 2017 via Android
6
mysql 5.7 以上
|
|
aijamJan 8, 2017
7
ElasticSearch
|
|
srlpJan 8, 2017
8
能装在内存的话(既然你有频繁查询), http://cristian.regolo.cc/2015/07/07/introducing-the-geo-api-in-redis.html
mongodb 不太适合。 |
|
loadingJan 8, 2017 via Android
9
数据库主要功能不是运算!
|
|
cstj0505Jan 8, 2017 via iPhone
11
绝对是 postgresql 啊,速度快,原生支持点的数据类型,还提供相应函数, postgis 支持地理位置的处理。专业的都用这个
|
|
skydiverJan 8, 2017 via iPad
12
支持 gis 最好的就是 pg 了吧
|
|
k9982874Jan 8, 2017 via iPad
13
mongod 和 redis 都有 geo api
|
|
mko0okmko0Jan 8, 2017
14
任意直线距离,大部分常规资料库都一样快阿.
还以为是在问以道路为准的. 如果是在一个路网内.依照交通和道路状况.计算出两点之间最短交通路径.这个才是比较需要考虑图论资料库或是有特殊要化的. |
|
cstj0505Jan 8, 2017 via iPhone
15
@mko0okmko0 你说的这些也不需要图数据库, postgresql+postgis 完全满足要求,还提供对应的函数和索引。
|
|
F281M6Dh8DXpD1g2Jan 8, 2017
16
postgis +1
|
|
jedyuJan 8, 2017
17
postgis 不二选择
|
|
lightsJan 8, 2017
18
|
|
blackleeJan 8, 2017
19
Postgres 。
我刚刚把一个用了两年多, 5500W+数据量的系统,从 MySQL 导入到 Postgres 。 |
|
WarderJan 8, 2017 via Android
20
做 gis 相关数据的应该都知道 postgres
|
|
xjpJan 8, 2017 via iPhone
22
mongodb 和 redis 都支持地理位置查询 之前项目我们用 mongodb 的
|
|
faslingJan 8, 2017 via Android
23
可以直接用 PostgreSQL ,如果仅仅是这么一个需求的话可以参考地图分图幅的办法给每个餐馆和邮编分配一个网格号码,根据网格就可以直接遍历。这在空间数据处理里很常见。
|
|
BobbyLuJan 8, 2017
24
PostgreSQL 似乎对地理位置数据有特殊的优化
|
|
hao123yinlongJan 8, 2017
25
推荐 PostgreSQL ,千万用户,地理位置存储目前使用的 Mongo ,准备切 PG
|
|
fivesmallqJan 8, 2017 via iPhone
26
推荐 ElasticSearch ,之前用 mongo 性能太差
|
|
TangMonkJan 8, 2017 via Android
27
redis 处理比 postgis 还方便
|
|
Miy4moriJan 8, 2017 via Android
28
不建议用 mongo db ,因为丫的不支持 ACID ,推荐 PostGis
|
|
neoblackcapJan 8, 2017
29
@shiny 应用层目前的换算成本高罢了,毕竟地球是一个球体,地表两点的距离不是直线
|
|
shinyJan 8, 2017
31
@neoblackcap 看精度要求,精度不高可以 GeoHash ,索引做的恰当还是挺快的。
|
|
ETiVJan 9, 2017
32
调百度、高德的 API 不行么,自己整不明白还非得自己做。。。?
|
|
SharuruJan 9, 2017 via Android
34
如果楼主是类似生活 POI 兴趣点搜索的话,调地图 API 最快最容易。
如果涉及到自有 LBS , GIS 的话,还是推荐 PostgreSQL ,专业做这个。 毕竟,谁都不知道未来需求,稍微“未雨绸缪”下也是值得考虑的。 (不过,同样也得考虑学习成本,看回复不同数据库的选择和技术栈也有关系 |
|
NitromethaneJan 9, 2017
35
这种场景更考验的是如何设置缓存
推荐使用 redis 与传统结构性数据库配合 否则高并发场景下,仅仅凭数据库性能是远远不够的,除非你单机性能特别强特别强特别强 |