本人刚入行手游服务端开发,目前在跟一个项目,里面主要用到mongo db来存储数据,这两天纠结于mongo存储空间的问题:使用数组格式来存储数据和使用记录类型格式来存储数据,哪一种存储更加节省空间?
记录类型格式
{ “playerId”:1234, “username”:“bob” “desc”:“play game” }
数组格式:
{1234,“bob”,“play game”}
问题扩展
如果使用数组格式出库和入库会不会乱序?比如入库{1,2,3}
,读取读出来会不会成了{2,3,1}
,目前测试好像不会乱序。我想知道一些mongo底层原理,有什么好的推荐(网站,书籍,问答)?
通常你们更加倾向使用哪种格式来存储数据?为什么?
可能问题问得不是很好,望见谅。
첫 번째 옵션을 선택하세요
현재 프로젝트의 5KW 데이터는 각 데이터당 10개 정도의 키가 있으므로 인덱스와 데이터의 총 저장 공간은 그리 크지 않습니다. 100G.
첫 번째 형식이 쿼리하기 더 쉽습니다.
Mongo 자체는 문서 데이터베이스이며 데이터는 bson 구조(json과 유사)에 저장됩니다.
어레이가 고장난 경우에는 이런 일이 발생하지 않습니다.
문서 데이터로 저장하려면 더 편리하고 사용하기 쉬운
json
을 선택해 보세요. 파싱을 하든 로딩을 하든 배열보다 편리합니다.json
을 사용하시면 말씀하신 순서 문제를 피할 수 있습니다. 배열을 사용해도 데이터 순서가 엉키지는 않을 것 같아요. 기본적으로 mongo는 파일공간 저장 순서대로 저장됩니다레코드 형식을 사용하여 저장합니다.
읽기 쉽고, 쿼리하고, 계산하기 쉽습니다. 데이터는 저장될 뿐만 아니라 사용하기도 쉽습니다.
데이터베이스 수준에서 차지하는 공간은 다음과 같습니다. 무시되며 하드디스크가 가장 저렴한 리소스입니다.
논리적으로 사용하는 데이터 구조가 순서대로라면 저장과 읽기 모두 순서대로 됩니다.
아직 위에서 언급한 json입니다