一個快速查看系統上 MySQL 版本中已內建哪些 DBA 處理器(不含版本號)的方法,是使用 var_dump 搭配 dba_handler(),如下所示:
<?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 處理程式在速度上有顯著的提升,請在您的環境中進行測試以驗證結果。