本人剛入行手遊服務端開發,目前在跟一個項目,裡面主要用到mongo db來存儲數據,這兩天糾結於mongo存儲空間的問題:使用數組格式來存儲數據和使用記錄類型格式來存儲數據,哪一種儲存更加節省空間?
記錄類型格式
{
“playerId”:1234,
“username”:“bob”
“desc”:“play game”
}
數組格式:
{1234,“bob”,“play game”}
問題擴充
如果使用陣列格式出庫和入庫會不會亂序?例如入庫{1,2,3}
,讀取讀出來會不會成了{2,3,1}
,目前測試好像不會亂序。我想知道一些mongo底層原理,有什麼好的推薦(網站,書籍,問答)?
通常你們會比較傾向使用哪種格式來儲存資料?為什麼?
可能問題問得不是很好,望見諒。
为情所困2017-04-28 09:06:14
傾向於第一種
不用那麼在意儲存空間,目前專案中5KW的數據,每條數據10個key左右,索引加數據總的儲存空間也沒有很大,大概不超過100G。
第一種格式對於查詢更友善。
本身mongo就是文檔型資料庫,資料會以bson結構儲存(類似json)。
數組亂序這個不會。
世界只因有你2017-04-28 09:06:14
作為文檔性數據,為什麼不選用更方便好用的json
来存呢。无论是解析还是装载,都比数组更方便啊。如果用json
還可以避免你說的順序問題。本人猜測資料順序是不會亂的,及時你用數組。依據是mongo是依照檔案空間儲存順序儲存的
高洛峰2017-04-28 09:06:14
使用 記錄類型格式 來儲存.
易讀, 易查詢, 易統計. 資料不只是儲存的, 更要易用.
資料庫層面佔用空間可以忽略, 硬碟是最便宜的資源.
只要你邏輯上用的資料結構是有序的, 那麼存和讀取都是有序的.