Python中的NoSQL数据库:“shelve”无法完成哪些任务?
Python的标准库里有一个叫做 shelve 的NoSQL数据库,感觉还不错。不过,其他一些NoSQL数据库,比如mongoDB,还是很受欢迎。
如果我选择使用shelve,而不是那些更流行的选择,我会错过哪些主要功能呢?
1 个回答
3
shelve
就是一个非常简单的键值存储工具,类似于一个小型数据库。它的使用方式和 Python 中的 dict
(字典)几乎一样,没什么特别复杂的。它不支持同时读写;也就是说,虽然多个用户可以安全地读取 shelve
数据库,但如果有用户在写数据,那就不安全了。它的性能也不是特别好,因为它使用 pickle
来保存存储的对象,而这个过程比较慢。
相比之下,像 MongoDB 这样的功能齐全的 NoSQL 数据库提供了更多的功能,比如数据复制、自动分片、索引支持、更复杂的查询和原子写入等。而且在性能和扩展性方面也会更好。
不过,如果你只是想从一个应用程序访问数据库,存储的数据不多,不需要复杂的查询,也不追求最佳性能,那么使用 shelve
可能就足够了。否则,你可能需要找一个更强大的数据库。