Re: PEAR DB speed up

From: Date: Mon, 10 Dec 2001 18:12:35 +0000
Subject: Re: PEAR DB speed up
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-3429@lists.php.net to get a copy of this message
Hi Tomas, I'm back reading this newsgroup. Your news is wonderful. Congratulations on your hard work. Regards, John Tomas V.V.Cox <cox@idecnet.com> wrote in message news:3C13DE27.85A063D2@idecnet.com... > Hi, > > I reviewed a great part of the actual PEAR DB code to make it more > faster and light. I'm quite happy with the results, according to the > John Lim benchmark suite (dbbench-2001-10-20.zip) the results in my box > were: > > Native mysql 5.7205570936203 > ADODB 9.3135859966278 > PEAR DB 3a 10.585510969162 > PEAR DB 2 15.077128052711 > > (I named my hack PEAR DB 3a and used fetchInto()) > > Internally the summary of changes were: > - Only use two files instead of three: DB.php and the driver (reduced > the I/O access and the size of code to parse). > - The result object is now declared in each driver instead of having > the DB_result object. > - Now the query() method is done directly by the driver no longer > need the DB_common interface to Driver::simpleQuery(). > - The DB_error class is no longer needed and the error handling > mechanism is done by DB_common::raiseError. > - Dropped unused and unsupported old code. > - Fixed a lot of PHPDoc comments. > - Preserved almost all the functionality/compability (only minor > things hasn't being yet integrated, like DB_FETCHMODE_OBJECT). > - Adapted all the tests to work with this changes (for ex the > simpleQuery > test and things like so). > > Why is PEAR DB still a little bit slower than ADODB? > > Mainly because: > - PEAR DB sets the type of fetch in the fetch method so we need to > do some more repeated comparisons. > - PEAR DB checks for errors when the native fetch function fails. > - PEAR DB has the logic for the non-sequencial fetching inside the > fetch method. > > Status > > For the moment only the mysql driver has been changed and updated (it > isn't too much work to do the properly changes for the others). > > Code > > I uploaded what is done to: > http://vulcanonet.com/soft/PEAR_DB-3.tgz > > Comments on areas that can be improved or the chance of officially > adopting that are welcome. > > > Tomas V.V.Cox

« previous php.pear.dev (#3429) next »