-1

我是 NoSQL 的新手。我一直有这个问题。众所周知,在 SQL 中,数据存储在表中,除了第一行之外,只有数据。相比之下,NoSQL 将数据存储在 Object 中,其中至少包含一对 key-value。NoSQL 是否将每个文档的所有键重复存储在存储中?如果是这样,我可以肯定SQL在存储效率方面优于NoSQL吗?

这里的 NoSQL,我的意思是 MongoDB。对困惑感到抱歉。

4

1 回答 1

-1

我认为您主要要问的是,例如,如果您有 100 万个文档,每个文档有 20 个键(字段),MongoDB 是否还会为您的集合保存 2000 万个字符串以及所有值。

有一个简单的方法来测试它,不知道如何可靠,但你可以用 1 个大键制作 1 个集合,例如保存 100 万个文档,并检查集合的大小 /var/lib/mongodb

MongoDB 压缩MongoDB 集合中的数据压缩

我不知道它是如何工作的细节,但我认为压缩会减少密钥的磁盘空间。我猜它会类似于一个 zip 文件,当我们多次存储 1 个单词时,只保存 1 次,即使一个 20MB 的文件也变成了几个 kb。

最好等待更好的答案或在这里询问,那里有人知道MongoDB如何存储数据的所有细节。询问他们关于密钥存储的问题。

于 2021-08-31T20:05:15.430 回答