note 93370 added to function.dba-handlers
| From: | cbemerine at gmail dot com | Date: | Sun, 06 Sep 2009 12:59:24 +0000 |
| Subject: | note 93370 added to function.dba-handlers | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-160253@lists.php.net to get a copy of this message | ||
A quick way to see which DBA handlers, without version numbers, that have been built into your
version of MySQL on your system, use var_dump with dba_handler() as follows:
<?php
var_dump ( "dba_handlers()" );
?>
Many distros build in these DBA Handlers by default:
array(5) { [0]=> string(3) "cdb" [1]=> string(8) "cdb_make" [2]=>
string(3) "db4" [3]=> string(7) "inifile" [4]=> string(8)
"flatfile" }
using print and pre tags for readability:
array(5) {
[0]=>
string(3) "cdb"
[1]=>
string(8) "cdb_make"
[2]=>
string(3) "db4"
[3]=>
string(7) "inifile"
[4]=>
string(8) "flatfile"
}
Note there are issues with dba_insert and dba_replace without building for either GDBM or QDBM.
Here are two sources for the list of DBA handlers:
(http://www.php-editors.com/php_manual/ref.dba.html and http://dewa03.unep.org/manuals/php_manual/ref.dba.html;
)
CDBM & CDB compiles have issues with updates, you can read databases and write new database
files, but you will be prevented from using dba_replace() and you may have issues with dba_insert().
NDBM & DBM are depreciated.
DB2, DB3 & DB4 (Berkeley DB Sleepycat Software / Oracle) Have read online about issues with
dba_replace() and db4 specifically. Make sure you test your installation for correct usage of all
DBA functions.
SDBM, TDB, TinyCDB were not listed on most of the sources I have found online. Those DBA handlers
and the names of the developers were listed on the QDBM source forge site. How they interact with
dba_replace() I do not know. You should be aware of their existence.
GDBM and QDBM are the only other two DBA handlers I am aware of. Both are reported to allow
PHP's dba_replace() function to work correctly so either may be an acceptable option. The
following three restrictions of traditional DBM are not issues for either GDBM or QDBM: 1) a process
can handle only one database; 2) the size of a key and a value is bounded; 3) a database file is
sparse.
DBA handler benchmark compares QDBM, GDBM, NDBM, SDBM, TDB, CDB, BDB, QDBM-BT-ASC, QDBM-BT-RND,
BDB-BT-ASC, BDB-BT-RND can be found here: (http://qdbm.sourceforge.net/benchmark.pdf);
QDBM seems to offer significant improvements in speed over the other DBA Handlers, test in your
environment to verify the results.
----
Server IP: 69.147.83.197
Probable Submitter: 76.171.200.56
----
Manual Page -- http://www.php.net/manual/en/function.dba-handlers.php
Edit -- https://master.php.net/note/edit/93370
Del: integrated -- https://master.php.net/note/delete/93370/integrated
Del: useless -- https://master.php.net/note/delete/93370/useless
Del: bad code -- https://master.php.net/note/delete/93370/bad+code
Del: spam -- https://master.php.net/note/delete/93370/spam
Del: non-english -- https://master.php.net/note/delete/93370/non-english
Del: in docs -- https://master.php.net/note/delete/93370/in+docs
Del: other reasons-- https://master.php.net/note/delete/93370
Reject -- https://master.php.net/note/reject/93370
Search -- https://master.php.net/manage/user-notes.php