日誌分析數據庫中,我有以下的數據存儲在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值完全是隨機的 –