Berkeley DB的访问方法有四种BTree、Hash、Queue、Recno
他们在DB创建时选择,而且只能在创建时选择。一点选定某一个访问方法,
在使用中不能改变。
BTree 数据被存储在一个排序的平衡树结构中。key和value都可以是简单数
据(如整型,字符串),也可以是复杂数据(如结构)。当有多个数据的key
相同时,可以有复本。
Hash 数据存储在一个扩展的线性hash表中。其他的特性象BTree。
Queue 数据存储在一个队列中,记录是定长的。key为一个逻辑数,不由用户
选择类型。在尾部插入记录,在头部删除记录和取出记录非常的快。提供了
记录水平缩,提高在并发下的访问。
Recno 数据可以是定常或是变长的记录。其他特性象Queue。key也是一个逻辑数。
数据库访问方法的选择。
根据key可否用户定义分为BTree、Hash一组,Queue、Renco一组。
BTree与Hash之间的选择
如果数据量不,能被放到内存中。这种情况下选择BTree。即在小数据量的情况下
选用BTree,原因是在利用key来定为记录时,成功的几率大些。Hash有退步算法。
但是在大数据量的情况下,由于数据并不能都在数据库中,要访问磁盘,并且BTree
要维护的内部信息大于Hash,访问磁盘的几率大于Hash,会造成访问的瓶颈。所以
在大数据量下选择Hash。
Queue与Recno之间的选择
用在多并发下最好用Queue。但是如果记录是变长的,就只能选Recno了。在其它的情
况下,两者没有明显的差别。
Berkeley DB支持从非常小的数据库到256T的数据容量的数据库。单个key或recode
最大可以为4G的数据。
Berkeley DB的数据库被存储为二进制的格式,有利于平台的移植。
Berkeley DB支持并发的访问,但是不能用在NSF(网络文件系统)下。因为无法定位和
获得数据库的环境(在环境中设置对并发的控制)。
Berkeley DB的环境(Environments)提供了以下的功能
1 多数据库文件(Multi-database files)。将多个数据存储在一个物理文件中。
2 提供多线程或多进程的支持(Multi-thread and multi-process support)。
3 事务处理
4 高可用性(重复性)支持。即一个主数据库,和多个提供只读能力的复制数据库
5 日志子系统。
posted on 2007-05-26 11:26
walkspeed 阅读(3010)
评论(0) 编辑 收藏 引用 所属分类:
C++语言 、
Berkeley DB