python中的NoSQL数据库:什么是"搁置"不能做什么?

时间:2014-08-15 23:21:57

标签: python mongodb shelve nosql

Python标准库有一个NoSQL数据库,shelve,似乎已经足够了。然而,其他NoSQL(mongoDB)数据库仍然非常受欢迎。

如果我选择搁置更受欢迎的替代品,那么我将要放弃的主要特征是什么?

1 个答案:

答案 0 :(得分:3)

shelve只是一个非常简单的键值存储,每个赋值也写入数据库。它的界面基本上与python dict的界面完全一致,而这就是它。它不支持并发读/写访问;多个读者可以安全地访问shelve数据库,但如果其中任何一个可能正在编写,那么它就不安全了。它的性能不是特别好,因为它使用pickle来序列化它存储的对象,而且速度非常快。

功能齐全的NoSQL数据库(如MongoDB)提供许多更多功能,如复制,自动分片,索引支持,更高级的查询,原子写入等。性能和可伸缩性会更好,太

也就是说,如果您只是尝试从单个应用程序访问您的数据库,不需要存储大量数据,不需要任何类型的高级查询,并且不要&# 39; t需要尽可能好的表现,然后你可能会对shelve感到满意。否则,你可能想要更强大的东西。