为什么使用TinyDB?
TinyDB中有1200(40%文件)的代码行(+ 600次测试)。比较:buzhug大约有2000行代码(W / O测试),codernitydb大约有8000行代码(W / O试验)。
面向文件:如MongoDB,您可以存储任何文件(表示为dict)在TinyDB。
为了你的幸福,优化:TinyDB的设计是简单的和有趣的使用提供了一个简单和干净的API。
用纯Python:TinyDB既不需要一个外部服务器(例如pymongo)也没有任何依赖从PyPI。
在Python 3.4和2.6–PyPy的作品:TinyDB作品对Python和PyPy所有现代版本。
易扩展:你可以很容易地扩展TinyDB编写新存储或者修改存储中间件的行为。
近100%的测试覆盖率:如果你不算__repr__方法和一些抽象方法都没有测试,TinyDB有100%的测试覆盖率。
总之:如果你需要一个简单的数据库,用干净的API,只是没有很多的配置,TinyDB可能是你正确的选择。
为什么不使用TinyDB?
你需要一些相关的功能,比如http api 和rpc。
你是真的关心和需要高性能高速数据库。
坦率地说:如果你需要先进的功能或性能,TinyDBjiu –考虑使用数据库像buzhug,codernitydb或MongoDB
安装Tinydb数据库 $ pip install tinydb >>> from tinydb import TinyDB, where >>> db = TinyDB('db.json') >>> db.insert({'type': 'apple', 'count': 7}) 1 >>> db.insert({'type': 'peach', 'count': 3}) 2 Note >>> db.all() [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}] >>> db.search(where('type') == 'peach') [{'count': 3, 'type': 'peach'}] >>> db.search(where('count') > 5) [{'count': 7, 'type': 'apple'}] >>> db.update({'count': 10}, where('type') == 'apple') >>> db.all() [{'count': 10, 'type': 'apple'}, {'count': 3, 'type': 'peach'}] >>> db.remove(where('count') < 5) >>> db.all() [{'count': 10, 'type': 'apple'}] >>> db.purge() >>> db.all() []
这也太搓蛋了,直接就存入的json文件,你最少来个pickle 或者是msgpack呀 ~ 提供的api使用起来是挺方便,读取的性能也还算可以,但是写入的速度着实太慢了。 有兴趣的朋友可以试试 CodernityDB ,这也是个有趣的东西。