上一次例子,我们采用了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的访问方式,最值得称赞的是有行锁
分享到:
相关推荐
bsddb模块是用来操作bdb的模块,bdb是著名的Berkeley DB,它的性能非常好,mysql的存储后端引擎都支持bdb的方式。这里简单介绍一些关于bsddb的使用方法。 bdb不同于一般的关系数据库,它存储的数据只能是以key和...
Berkeley DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C++、Java、Perl、Python、Tcl以及其他很多语言都有其对应的API。Berkeley DB可以保存任意类型的键/值对(Key/Value Pair),而且可以为一个键保存多个...
BDB提供诸如C语言,C++,Java,Perl,Python,Tcl等多种编程语言的API,而且普遍支持大多数类Unix操作系统和Windows操作系统和实时操作系统(如 VxWorks)。 数据库设计工具全文共4页,当前为第2页。 BDB的要紧功能...
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语法 ...
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语法 ...
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语法 ...
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...
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...
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语法 ...
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语句语法...
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处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 ...