作家
登录

Python操作SQLite/MySQL/LMDB/LevelDB

作者: 来源: 2017-12-21 17:23:15 阅读 我要评论

  • 经由过程txn.delete(key)进行删除
  • 经由过程txn.get(key)进行萌芽
  • 经由过程txn.cursor()进行遍历
  • 经由过程txn.commit()提交更改
  • 来看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 操作流程

     Python操作SQLite/MySQL/LMDB/LevelDB

    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岁转行做初级程序员是一种怎样的体验?

    【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 30岁转行做法度榜样员到底行不可?在互联网成长敏捷的今天,很多人会产生如许的设法主意,这篇文┞仿告诉你>>>详细阅读


    本文标题:Python操作SQLite/MySQL/LMDB/LevelDB

    地址:http://www.17bianji.com/lsqh/40055.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)