【发布时间】:2012-04-11 09:29:04
【问题描述】:
我正在寻找有关如何在以下情况下提高数据库性能的提示。 (或者我应该考虑重新设计数据库)。
我的视频插槽社交应用程序包含 50 多个不同的视频插槽。问题是每次用户旋转时,我都必须将插槽信息保存到 DB。
目前我有以下数据库结构:1 个包含用户配置文件的集合和插槽数组中的许多插槽子文档。
{
_id: 1,
firstName: John,
lastName: Smoth,
money: 1000,
aLotOfOtherUserInfo: true,
slots:
[
{
slotId: 1,
bet: 1,
lines: 25,
payout: 100,
reels: [...]
winnings: [...]
freeSpins: [...]
}
]
}
在任何插槽中的每个用户旋转时,我都必须完全更新插槽数组中的插槽信息。插槽由 slotId 找到。
update(
{
"_id": 1,
"slots.slotId": 1
},
{
$set: {"slots.$":
{
"slotId":1,
aLotOfUpdatedSlotInfo: true
}}
}
)
- 我是否需要在“slots.slotId”上创建索引以改进所需的槽搜索?
- 或者我应该考虑重新设计数据库并将每个用户槽存储在单独的集合中?但是,例如,在用户登录时,我将不得不循环浏览所有集合并加载当前用户的所有插槽信息。因此,我认为这不是对每个用户登录进行 50 多次查询的好选择。
非常感谢您的帮助。我是 NoSQL 的新手,有时很难以 NoSQL 的方式思考。提前致谢
【问题讨论】:
标签: performance mongodb indexing