我在ouchdb数据库中具有以下文档:
{
"_id": "000013a7-4df6-403b-952c-ed767b61554a",
"_rev": "1-54dc1794443105e9d16ba71531dd2850",
"tags": [
"auto_import"
],
"ZZZZZZZZZZZ": "910111",
"UUUUUUUUUUUUU": "OOOOOOOOO",
"RECEIVING_OPERATOR": "073",
"type": "XXXXXXXXXXXXXXXXXXX",
"src_file": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Run Code Online (Sandbox Code Playgroud)
如果保存在我的本地文件系统中,则此JSON文件恰好占用319个字节。我的文档都是这样的(给定或占用几个字节,因为某些字段的长度不同)。
在我的数据库中,我目前大约有600万个文档,它们使用15 GB。这样一来,每个文档大约有2.5 KB。这意味着文档在CouchDB上占用的空间是磁盘上的8倍。
这是为什么?
问题与文档ID的使用方式有关:它不仅存储在文档中,还存储在其他数据结构中。这意味着使用标准UUID(000013a7-4df6-403b-952c-ed767b61554a36个字符)将占用大量磁盘空间。如果冲突是一个小问题,则使用base64可以为1600万个文档(仅包含4个字符)和超过10亿个文档(包含5个字符)进行编号。字典的一个不错的选择是排序(在“查看排序规则”的意义上):
-@0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
Run Code Online (Sandbox Code Playgroud)
使用这种方法,我将数据库的大小从2.5Kbytes / doc减少到0.4Kbytes / doc。我的新数据库仅使用旧数据库的16%的空间,我认为这是一个很大的改进。
| 归档时间: |
|
| 查看次数: |
2134 次 |
| 最近记录: |