Database 如何最好地组合键值存储和数据库中的数据
假设我们有一个社交网络的好友列表 大多数用例都需要将好友列表表加入到另一个表中,您可以在其中保存个人详细信息,例如:姓名、年龄、城市、个人资料图片URL、上次登录时间等 一旦好友列表表在100M行范围内。像这样查询联接可能需要几秒钟的时间。如果你引入一些其他的条件,它甚至会更慢 一个键值存储系统可以很快将好友列表带入 假设我们想显示用户最近登录的10个好友。 计算该输出的最佳方法是什么?下面是我一直在思考的一些方法。它们有什么意义吗Database 如何最好地组合键值存储和数据库中的数据,database,nosql,key-value,Database,Nosql,Key Value,假设我们有一个社交网络的好友列表 大多数用例都需要将好友列表表加入到另一个表中,您可以在其中保存个人详细信息,例如:姓名、年龄、城市、个人资料图片URL、上次登录时间等 一旦好友列表表在100M行范围内。像这样查询联接可能需要几秒钟的时间。如果你引入一些其他的条件,它甚至会更慢 一个键值存储系统可以很快将好友列表带入 假设我们想显示用户最近登录的10个好友。 计算该输出的最佳方法是什么?下面是我一直在思考的一些方法。它们有什么意义吗 我们是否应将所有数据保存在键值存储环境中?更新 每次新登录时
- 我们是否应将所有数据保存在键值存储环境中?更新 每次新登录时都要存储键值
- 或者我们先把朋友名单上的身份证拿出来。然后使用像“IN()”这样的数据库命令查询数据库
- 是否在客户端级别合并数据?javascript解决方案
- 获取用户朋友的ID李>
- 获取您想要的前10个好友的信息,这些好友按id所在的上次登录描述(以及其他where条件)排序
编辑:哦,是的,如果你已经知道朋友ID(你需要他们做其他事情),你甚至不需要加入。您可以将id传递给javascript,后者稍后通过AJAX加载最后一个登录列表 我会将好友列表部分放在快速存储中,并使用“in”查询而不是join