This topic created in 5112 days ago, the information mentioned may be changed or developed.
一个LBS约炮的东西, 你的位置坐标为 XY 你要找在你附近的1000米内的人
那么就是要查找所有坐标 在 X-1000 到X+1000 跟Y-1000 Y+1000的人
这种情况 如果应该怎么去设计表啊-。-
如果高访问量 应该如何去做呢
还有据说REDIS这种东西 很高级很强大 能否对这种场景起到帮助呢
谢谢啦
5 replies • 1970-01-01 08:00:00 +08:00
 |
|
1
Livid Jun 6, 2012
4sq 的这类数据是用 MongoDB 来存储和提供服务的。你可以 Google 一下 MongoDB Geo。
|
 |
|
2
catfan Jun 6, 2012
XY的值分开保存,查询的时候按条件筛选便可以。
WHERE 1000 < X < 2000 AND 1300 < Y < 2300
|
 |
|
3
ling0322 Jun 6, 2012
我的建议是(X区域号,Y区域号,X,Y)这样建。其中对(X区域号,Y区域号)建一个联合的索引。区域号的意思就是, 每隔1000米编号-> 0~999:0#; 1000~1999:1#; 2000~2999:3#...
然后查找的时候根据你所处在的地点(X,Y)算出(X区域号,Y区域号)寻找到你所在的相关的区域(以及邻近的8个区域,因为有索引所以可以在O(1)时间中取得),再和这个区域中的人比较X和Y,最终得出人数。
|