来看LevelDB版本的完全例子:
4.3 操作实例
4.3.1 建立情况

运行一下,查看当前目次的变更:

set_env.py
可以看到当前目次下多了students目次,琅绫擎有data.mdb和lock.mdb两个文件。
4.3.2 插入、删除、修改
插入与修改都用put实现,删除用delete实现。

留意用txn = env.begin()创建事务时,有write = True才能够写数据库。
4.3.3 萌芽
查单笔记录用get(key),遍历数据库用cursor。
直接在膳绫擎的代码commit()之后加上:


test_query.py
别的留意不需液每次execute后调用commit。

留意前次commit()之后要用env.begin()更新txn。
4.3.4 完全的例子

运行一下,输出结不雅为:

6. 进修总结
5. LevelDB
为了便于多次运行,直接应用了内存数据库:
5.1 预备
同为key-value数据库,LevelDB的材料比LMDB丰富太多了。值得一提的是LevelDB实现时用到了SkipList,今后有机会要亲自实现一下。
安装:

应用时import leveldb。
5.2 操作流程
LevelDB操作时类似与LMDB,应用Put/Get/Delete,然则加倍简单(不须要事务txn和commit提交),同时支撑范围迭代器RangeIter。
5.3 操作实例
运行一下,输出结不雅为:
运行一下,输出结不雅为:

test_leveldb.py
此外,因为没有commit()操作,leveldb顶用WriteBatch实现多条更改一次提交,直接copy示例代码如下:

此次进修四种数据库操作时,是按照SQLite -> MySQL -> LMDB -> LevelDB的次序,所以研究SQLite与LMDB花了较长时光,而MySQL与LevelDB很快就搞定了。某种意义上,进修技巧和背单词一样,当前控制的单词越多,背新单词就越轻易——因为可以把新单词和已经控制的同义词联系袈溱一路,在脑海里聚成簇。
最后回想一下,SQLite与MySQL都是关系型数据库,操作时创建连接对象connection与光标对象cursor,经由过程execute履行SQL语句,commit提交变革,fetch获得萌芽结不雅;LMDB与LevelDB都是K-V数据库,操妆厩?立与数据库的连接,用put/delete改变数据,用get获取数据,差别是LMDB中有事务须要commit,LevelDB不须要。
7. 参考材料
- SQLite
SQLite教程:
http://www.runoob.com/sqlite/sqlite-python.html
SQLite周全进修:
http://blog.jobbole.com/92796/
Python文档关于sqlite3的介绍:
https://docs.python.org/2/library/sqlite3.html
- MySQL
MySQLdb模块:
2.2 操作流程

http://www.oschina.net/code/snippet_16840_1811
Python操作MySQL:
http://www.cnblogs.com/rollenholt/archive/2012/05/29/2524327.html
- LMDB
Creating an LMDB database in Python:
http://deepdish.io/2015/04/28/creating-lmdb-in-python/
Python lmdb:
http://blog.csdn.net/ayst123/article/details/44077903
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 30岁转行做法度榜样员到底行不可?在互联网成长敏捷的今天,很多人会产生如许的设法主意,这篇文┞仿告诉你>>>详细阅读
本文标题:Python操作SQLite/MySQL/LMDB/LevelDB
地址:http://www.17bianji.com/lsqh/40055.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示