LBS数据库的架构是怎样的?

[复制链接]
查看11 | 回复4 | 2012-5-29 08:06:00 | 显示全部楼层 |阅读模式
基于坐标的信息,是如何做索引和搜索的?何提高缓存命中率?
回复

使用道具 举报

千问 | 2012-5-29 08:06:00 | 显示全部楼层
(1)
空间索引(Spatial Index)。
主流数据库(MySQL 5.0+、Oracle、PostgreSQL、SQL Server) 都在不同程度上支持欧空间索引,其中有一个类型就是 Point,可以用于存储 POI 的经纬度。
至于检索效率的提高,可以采用数据库厂家提供的 OpenGIS 函数,比如 DISTANCE 什么的。
(2)
即使不支持空间索引也没关系,传统的坐标存储也可以实现,会稍微复杂点,同时在经纬度上建立好复合索引。


回复

使用道具 举报

千问 | 2012-5-29 08:06:00 | 显示全部楼层
全球最大的LBS应用4sq用的MongoDB,国内的街旁也用的MongoDB。


回复

使用道具 举报

千问 | 2012-5-29 08:06:00 | 显示全部楼层
想知道类似weibo,微信,之类的用的是哪种来实现的。难道也是mongo的吗?现在网站只有一小部分用到lbs的东西。如果单独用mongo实现的话。维护成本也是一个大问题的。


回复

使用道具 举报

千问 | 2012-5-29 08:06:00 | 显示全部楼层
像微信的摇一摇,临时定位搜索的功能 如果用mysql 的memery引擎 性能能否跟得上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行