Python标准库有一个NoSQL数据库,shelve,似乎已经足够了。然而,其他NoSQL(mongoDB)数据库仍然非常受欢迎。
如果我选择搁置更受欢迎的替代品,那么我将要放弃的主要特征是什么?
答案 0 :(得分:3)
shelve
只是一个非常简单的键值存储,每个赋值也写入数据库。它的界面基本上与python dict
的界面完全一致,而这就是它。它不支持并发读/写访问;多个读者可以安全地访问shelve
数据库,但如果其中任何一个可能正在编写,那么它就不安全了。它的性能不是特别好,因为它使用pickle
来序列化它存储的对象,而且速度非常快。
功能齐全的NoSQL数据库(如MongoDB)提供许多更多功能,如复制,自动分片,索引支持,更高级的查询,原子写入等。性能和可伸缩性会更好,太
也就是说,如果您只是尝试从单个应用程序访问您的数据库,不需要存储大量数据,不需要任何类型的高级查询,并且不要&# 39; t需要尽可能好的表现,然后你可能会对shelve
感到满意。否则,你可能想要更强大的东西。