`
hammer_nail
  • 浏览: 22608 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

python 操作 BDB (2)

阅读更多

上一次例子,我们采用了python特有的打开BDB的方式,非常简单,但是我好像没找到怎么指定访问方式的参数,后来继续看例子,找到了一个原生的访问方式,见代码

def common_tree_test(self):
        print "############################ Start BTREE TEST ############################# "
        home = "db_home"
        filename = "test.db"
        try:
            # create the env folder
            os.mkdir(home)
        except:
            pass
        
        # create DB env
        dbenv = bsddb.db.DBEnv()
        # open DB env
        dbenv.open(home, bsddb.db.DB_CREATE | bsddb.db.DB_INIT_MPOOL)
        # Create DB folder/object
        d = bsddb.db.DB(dbenv)
        # Open the bdb, second one is to define use what kind of struvture to access
        # btree: bsddb.db.DB_BTREE
        # hash:  bsddb.db.DB_HASH
        # queue: bsddb.db.DB_QUEUE
        # recno: bsddb.db.DB_RECNO
        d.open(filename, bsddb.db.DB_BTREE, bsddb.db.DB_CREATE, 0666)
        # Insert a record, notice that the key when you use queue, and  recno must be number
        i = 1
        start = time.time()
        print start
        while(++i < 10000000):
            d.put('test1_'+str(i), 'admin'+str(i))
        end = time.time()
        print end - start
        print d.items()
        # whenn it close, write the data from memory to file
        d.close()
        dbenv.close()
    def common_queue_test(self):       

 我们知道BDB有4种访问方式:

1. BTREE: b树的结构速度快

2. Hash: 速度和B树差不多,但是如果是有数据量大的情况下,建议采用Hash

3. Reco:x 相当于我们说的行数据的访问方式

4. Queue: 定长value的访问方式,最值得称赞的是有行锁

 

分享到:
评论

相关推荐

    Python bsddb模块操作Berkeley DB数据库介绍

    bsddb模块是用来操作bdb的模块,bdb是著名的Berkeley DB,它的性能非常好,mysql的存储后端引擎都支持bdb的方式。这里简单介绍一些关于bsddb的使用方法。 bdb不同于一般的关系数据库,它存储的数据只能是以key和...

    java berkeley-db demo

    Berkeley DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C++、Java、Perl、Python、Tcl以及其他很多语言都有其对应的API。Berkeley DB可以保存任意类型的键/值对(Key/Value Pair),而且可以为一个键保存多个...

    数据库设计工具.docx

    BDB提供诸如C语言,C++,Java,Perl,Python,Tcl等多种编程语言的API,而且普遍支持大多数类Unix操作系统和Windows操作系统和实时操作系统(如 VxWorks)。 数据库设计工具全文共4页,当前为第2页。 BDB的要紧功能...

    MySQL 5.1中文手冊

    12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX语法 ...

    MySQL 5.1参考手册 (中文版)

    12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX语法 ...

    mysql官方中文参考手册

    12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX语法 ...

    MYSQL中文手册

    12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX...

    MySQL 5.1参考手册中文版

    12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX...

    MySQL 5.1参考手册

    12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX语法 ...

    MySQL5.1参考手册官方简体中文版

    12.9.2. 加密函数 12.9.3. 信息函数 12.9.4. 其他函数 12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法...

    MySQL 5.1官方简体中文参考手册

    12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX语法 ...

    mysql5.1中文手册

    MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 ...

Global site tag (gtag.js) - Google Analytics