查看系统上MySQL版本中内置的DBA处理程序(不带版本号)的快速方法,如下所示使用带dba_handler()的var_dump:
<?php
var_dump ( "dba_handlers()" );
?>
许多发行版默认情况下会内置这些DBA处理器
array(5) { [0]=> string(3) "cdb" [1]=> string(8) "cdb_make" [2]=> string(3) "db4" [3]=> string(7) "inifile" [4]=> string(8) "flatfile" }
使用print和pre标签以提高可读性
array(5) {
[0]=>
string(3) "cdb"
[1]=>
string(8) "cdb_make"
[2]=>
string(3) "db4"
[3]=>
string(7) "inifile"
[4]=>
string(8) "flatfile"
}
注意,如果不为GDBM或QDBM构建,dba_insert和dba_replace会出现问题。
以下是DBA处理程序列表的两个来源:(http://www.php-editors.com/php_manual/ref.dba.html 和 http://dewa03.unep.org/manuals/php_manual/ref.dba.html; )
CDBM & CDB编译在更新方面存在问题,您可以读取数据库并写入新的数据库文件,但是您将无法使用dba_replace(),并且dba_insert()也可能出现问题。
NDBM & DBM已弃用。
DB2、DB3和DB4(Berkeley DB Sleepycat Software / Oracle)在线阅读了关于dba_replace()和db4问题的相关信息。确保您测试安装以确保所有DBA函数的正确使用。
SDBM、TDB、TinyCDB在我的大部分在线资料来源中都没有列出。这些DBA处理器及其开发人员的名称列在QDBM SourceForge网站上。我不知道它们如何与dba_replace()交互。您应该知道它们的存在。
GDBM和QDBM是我知道的另外两个DBA处理器。据报道,两者都允许PHP的dba_replace()函数正常工作,因此两者都可以是一个可接受的选项。传统DBM的以下三个限制对于GDBM或QDBM都不是问题:1)一个进程只能处理一个数据库;2)键和值的大小是有限制的;3)数据库文件是稀疏的。
DBA处理器基准测试比较了QDBM、GDBM、NDBM、SDBM、TDB、CDB、BDB、QDBM-BT-ASC、QDBM-BT-RND、BDB-BT-ASC、BDB-BT-RND,可以在这里找到:(http://qdbm.sourceforge.net/benchmark.pdf);
QDBM似乎在速度上比其他DBA处理器有了显著的改进,请在您的环境中进行测试以验证结果。