我正在构建一个基于位置的“聊天”应用程序,并使用 Amazon 的 DynamoDB 来利用高吞吐量和自动扩展。
该应用程序将经常更新用户在数据库中的位置(我使用的是 PHP geohash 库)。它还将搜索特定地理半径内的用户。
我是 NoSQL 的新手(我有很多 MySQL 经验),希望对我的“用户”表进行建模。两个担忧:
1)如果用户的geohash / longitude / latitude 属性经常更新,这是否会导致DynamoDB出现问题(表锁定?)?在 MySQL 中,我会为这些值创建一个单独的表,以防止锁定整个用户表。在 DynamoDB 中我需要担心这个吗?
2) 在地理范围内搜索用户?这只是在 geohash 属性上设置一个全局二级索引并对其执行查询吗?分片会导致这个问题吗?