bsddb模块是用来操作bdb的模块,bdb是著名的Berkeley DB,它的性能非常好,mysql的存储后端引擎都支持bdb的方式。这里简单介绍一些关于bsddb的使用方法。
bdb不同于一般的关系数据库,它存储的数据只能是以key和value组成的一对数据,使用就像python的字典一样,它不能直接表示多个字段,当要存储多个字段的数据时,只能把数据作为一个整体存放到value中。
使用bsddb面临的第一问题是使用什么数据访问方法,bdb支持四种:btree, hash, queue, recno。这里先说说它们有什么区别,btree是用的树结构来才存储的数据,查询速度很快,可以存储任意复杂的key和value。hash是用的hash算法,速度其实和btree比差不多的,但是当数据量特别巨大时,应该使用hash。queue是队列操作,它有一个限制,它只能存储定长的数据,也就是说value的长度是固定的!但是queue可以保持数据的先进先出,并且对数据的插入做了特殊的优化,并且提供行级锁。queue的key必须是数字。recno和queue类似,但是它可以支持变长的value,它的key同样也是数字。
这里先对这四种数据访问方法分别做打开数据库,简单插入一条数据的演示。
对于python的bsddb模块来说,打开数据库的操作有两种方式,一是使用原始的接口,就是先打开一个环境,然后从这个环境中打开一个数据库,就像下面:
import bsddbdbenv = bsddb.db.DBEnv() dbenv.open(home, bsddb.db.DB_CREATE | bsddb.db.DB_INIT_MPOOL) d = bsddb.db.DB(dbenv) d.open(filename, bsddb.db.DB_BTREE, bsddb.db.DB_CREATE, 0666)
还有一种方式是python特有的,这个是bsddb模块本身对上面的过程做了包装,比如打开btree的:
import bsddbdb = bsddb.btopen('test.db', 'c')
看起来比上面的简单多了吧。但这种方式提供的接口很有限,也只有很简单的功能,没有第一种的灵活,但是它在python2.5的版本里是线程安全的。这里都介绍一下。
看看一个例子:
#-*- encoding: gb2312 -*- import os, sys, string import bsddb, timehome = "db_home" filename = "test.db" try: # 创建home目录 os.mkdir(home) except: pass
# 创建数据库环境 dbenv = bsddb.db.DBEnv() # 打开数据库环境 dbenv.open(home, bsddb.db.DB_CREATE | bsddb.db.DB_INIT_MPOOL) # 创建数据库对象 d = bsddb.db.DB(dbenv) # 打开数据库, 这里的第二个参数就是指定使用什么数据访问方法 # btree是 bsddb.db.DB_BTREE, hash是bsddb.db.DB_HASH # queu 是 bsddb.db.DB_QUEUE, recno 是bsddb.db.DB_RECNO d.open(filename, bsddb.db.DB_BTREE, bsddb.db.DB_CREATE, 0666) # 插入一条数据,注意queue和recno的key不能是字符串的,应该是数字 d.put('test1', 'zhaowei') print d.items() # 关闭,这时会把数据写回文件 d.close() dbenv.close()
#-*- encoding: gb2312 -*- import os, sys, string import bsddb, timehome = "db_home" filename = "testqueue.db" try: os.mkdir(home) except: pass
dbenv = bsddb.db.DBEnv() dbenv.open(home, bsddb.db.DB_CREATE | bsddb.db.DB_INIT_MPOOL) d = bsddb.db.DB(dbenv) # queue必须要设置一个value的长度,它的value是定长的 d.set_re_len(40) d.open(filename, bsddb.db.DB_QUEUE, bsddb.db.DB_CREATE, 0666) # 它的key必须是数字 d.put(1, 'zhaowei') print d.items()
d.close() dbenv.close()
import bsddbd = bsddb.hashopen("aaa.db", "c") d['test1'] = "zhaowei" print d.items() d.close()
获得数据表数据接口,支持对内置表自定义字段的获取与修改 查询数据 接口 GET https://cloud.minapp.com/userve/v1/table/:table_id/record/ 其中 :table_id 需替换为你的数据表 ID 参数说明 Content-Type: application/json 参数 类型 必填 说明 where String N 查询语句,参数值应经过
获得数据表数据接口,支持对内置表自定义字段的获取与修改 查询数据 接口 GET https://cloud.minapp.com/oserve/v1/table/:table_id/record/ 其中 :table_id 需替换为你的数据表 ID 参数说明 Content-Type: application/json 参数 类型 必填 说明 where String N 查询语句,参数值应经过
创建数据表 接口 POST https://cloud.minapp.com/userve/v1/table/ 提交参数 参数 类型 必填 说明 name String(32) 是 数据表名(以字母开头,字母、数字、下划线的组合) schema Object 是 数据表字段的元信息 row_read_perm String Array 是 数据表行的读权限 row_write_perm Strin
创建数据表 接口 POST https://cloud.minapp.com/oserve/v1/table/ 提交参数 参数 类型 必填 说明 name String(32) 是 数据表名(以字母开头,字母、数字、下划线的组合) schema Object 是 数据表字段的元信息 row_read_perm String Array 是 数据表行的读权限 row_write_perm Strin
本文向大家介绍Python MySQLdb模块连接操作mysql数据库实例,包括了Python MySQLdb模块连接操作mysql数据库实例的使用技巧和注意事项,需要的朋友参考一下 mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法。python操作数据库需要安装一个第三方的模块,在http://mysql-python.
本文向大家介绍Python 解析pymysql模块操作数据库的方法,包括了Python 解析pymysql模块操作数据库的方法的使用技巧和注意事项,需要的朋友参考一下 pymysql 是 python 用来操作MySQL的第三方库,下面具体介绍和使用该库的基本方法。 1.建立数据库连接 通过 connect 函数中 parameter 参数 建立连接,连接成功返回Connection对象 pymy