本人刚入行手游服务端开发,目前在跟一个项目,里面主要用到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
使用 记录类型格式 来存储.
易读, 易查询, 易统计. 数据不仅仅是存储的, 更要易用.
数据库层面占用空间可以忽略, 硬盘是最便宜的资源.
只要你逻辑上用的数据结构是有序的, 那么存和读取都是有序的.