PHP对Berkeley DB游标遍历的方法

发表时间:2011-09-02 03:47:27 文章分类:BerkeleyDB 阅读:12519
B+树算法:B+树是一个平衡树,关键字有序存储,并且其结构能随数据的插入和删除进行动态调整。为了代码的简单,DB没有实现对关键字的前缀码压缩。B+树支持对数据查询、插入、删除的常数级速度。关键字可以为任意的数据结构。HASH算法:DB中实际使用的是扩展线性HASH算法(extended linear hashing),可以根据HASH表的增长进行适当的调整。关键字可以为任意的数据结构。 Recno算法: 要求每一个记录都有一个逻辑纪录号,逻辑纪录号由算法本身生成。实际上,这和关系型数据库中逻辑主键通常定义为int AUTO型是同一个概念。Recho建立在B+树算法之上,提供了一个存储有序数据的接口。记录的长度可以为定长或不定长。 Queue算法:和Recno方式接近, 只不过记录的长度为定长。数据以定长记录方式存储在队列中,插入操作把记录插入到队列的尾部,相比之下插入速度是最快的。 对算法的选择首先要看关键字的类型,如果为复杂类型,则只能选择B+树或HASH算法,如果关键字为逻辑记录号,则应该选择Recno或Queue算法。当工作集关键字有序时,B+树算法比较合适;如果工作集比较大且基本上关键字为随机分布时,选择HASH算法。Queue算法只能存储定长的记录,在高的并发处理情况下,Queue算法效率较高;如果是其它情况,则选择Recno算法,Recno算法把数据存储为平面文件格式。
[mycode=PHP]class Db4Env {//Db4Env设置数据库环境、Db4操作数据库、Db4Txn用于事务处理、Db4Cursor用于光标处理    function Db4Env($flags = 0) {}    function close($flags = 0) {} 

Berkeley DB Hash、Btree、Queue、Recno选择

发表时间:2011-02-16 10:03:28 文章分类:BerkeleyDB 阅读:20695
在数据库应用中,数据访问方式对应数据在硬盘上的存储格式和操作方法。在编写应用时,选择合适的算法可以极大的提高运算速度。大多数数据库都选用 Btree算法,DB也不例外,同时还提供Hash算法、Recno算法和Queue算法。Berkeley  DB的强大之一是它为这几种算法提供了差不多相同的接口,这表明当你要使用另一种算法时修改程序是简单的。程序在需要对特殊数据结构和存取模式操作时,通 过不同的算法可以轻易的解决。大多数应用要么在Btree和Hash算法之间,要么在Queue和Recno算法之间选择。Hash 还是 Btree? 当记录号不是用于数据存取的主键时,应该使用 Hash和Btree算法。 (如果记录号是用于数据存取的一个二级关键字,那么还是可以选择Btree算法,因为它支持一个主键和一个记录号同时存取。)Btree中的主键是有序存储,记录间的关联是依靠次序。并且其结构能随数据的插入和删除进行动态调整。为了代码的简单,DB没有实现对关键字的前缀码压缩。Btree支持对数据查询、插入、删除的常数级速度。关键字可以为任意的数据结构。 因此,当在主键有序时,Btree算法应该被使用。例如,如果主键是时间戳, 那么8点时间戳后面跟随的就是9点时间戳, 这种情况下,Btree算法一般是正确的选择。再来个例子:如果主键是名字,应用需要取出所有同姓的记录,那么Btree 存取方法同样是个好选择。Hash 和 Btree 两种方式在小的数据集合上几乎没有性能的差别。不过,由于Hash使用的是扩展线性HASH算法(e

Berkeley DB Hash、Btree的一个测试图表

发表时间:2011-02-16 09:55:57 文章分类:BerkeleyDB 阅读:6312
暂无文章介绍

php操作BerkeleyDB简介

发表时间:2011-02-16 09:34:25 文章分类:BerkeleyDB 阅读:25030
准备工作(安装)虽然PHP里已经自带了php_db和php_dba两个扩展都支持Berkekey DB,但是毕竟支持的有限,所以还是编译Berkeley DB自带的php_db4扩展好。# cd /usr/local/src/db-4.6.18/php_db4/# phpize(/usr/local/php/bin/phpize)# ./configure --with-db4=/usr/local/berkeleydb/ --with-php-config=/usr/local/php/bin/php-config# make# make install说明:这里configure的时候可能会提示你找不到php-config,你可以找到你的php安装PATH,然后增加--with-php-config=PATH至此db4已编译好在/usr/lib64/php/modules/db4.so目录(具体跟你的系统有关)echo 'extension=db4.so' > /etc/php.d/db4.ini重起WEB服务器(Apache等)至此php_db4扩展的安装也完成了,执行php -m即可看到db4扩展已经加载了。2.测试php_db4扩展php_db4提供了下面4个类:[mycode=PHP]class Db4Env {    function Db4Env($flags = 0) {}    function close($flags = 0) {}    function dbremove($txn, $filename, $database = null,