日志分析数据库中,我有以下的数据存储在MongoDB中uid, gender ,country, city, date_of_visit, url_of_visit
最佳架构设计用于在MongoDB中
我想用来存储UID,性别,国家和城市的一个集合,因为这些信息不会针对特定改变用户。
其他集合中我想用来存储uid, date_of_visit, url_of_visit
我想知道这是存储uid, date_of_visit and url_of_visit
。还有在我的脑海两件事最佳实践..
(a) { uid: 100, date: xxxxxxxxxxxxxxx, url: abc.php }
{ uid: 100, date: xxxxxx, url: ref.php }
{ uid: 200, date: xxxxxxxxx, url: ref.php }
(b) { uid:100, visit:[{date:xxxxxxx, url:abc.php},
{date:xxxx, url:def.php},
{.........................}]}
我想有下面的索引日期:1,uid:1,url:1 ...方法(a)的问题是在数据库中插入每一行数据库端和索引大小将增加,并且当索引大小不适合时会出现一个点进入内存
问题与方法(b)是在某些时候,每个文件将超过16 MB的限制,这种方法将失败的时间..
请建议我什么应该是这种情况下最好的模式设计。我也会有查询,其中包括uid, gender, country, date_of_visit, url_of_visit
出于好奇:)一个问题。随着时间的推移,文档大小将会增长,那么对这些文档(大尺寸文档)的写操作会很慢吗? –
这很难说,它取决于Mongo数据总量以及它如何适应内存。但我认为没关系,因为在其他情况下,和以前的版本一样,限制将会是8M。 –
我想隐藏Uid Bin数据并将其分配给_id字段。将uid设为_id是个好主意吗?我已阅读过文档“使用大致按升序排列的_id值”。并且我的uids值完全是随机的 –