XOOPS Web Application System (https://xoops.org)

Powered by You!

ADODB 0.24 - Advanced Database Perfomance

Category : Hacks | Published by wishcraft on 05-Oct-2011 10:03
Resized Image
ADODB 0.24 - Advanced Database Performance Enhancement

ADODB is a PHP library available from sourceforge, this is not to be confused for the PHP Extension ADODB they are too seperate things. There is of course a major bottle neck in the current database library where this patch will improve performace upto 1000% with XOOPS 2.3, XOOPS 2.4 & XOOPS 2.5.

It has been awhile coming and we will have some benchmarking for you in the next day or two we are currently running the tests on our Blade Server with 16Gbs of Memory which has minimal load to get an accurate respository of exactly how ADO Db performs in the XOOPS Classes.

To install this simply download the files and replace them in the directory tree class folder.

Download: xoops2.5_adodb_0.24.zip
Sourceforge: xoops2.5_adodb_0.24.zip
Demo:http://xoops.demo.chronolabs.coop

Some Benchmarking: (A Full Report is available below in spreedsheet)

Note: This bench testing is done on a shared Blade Server with 16GB used for IPTV, potentially the figures have been thrown by the occassional load on the server from crons and other system tasks; some of this testing is not direct database injection but instead using the XOOPS Classes Structures to better enhance the code execution testing

Standard 1996 Database class:
Average Create Table: 0.17227774262400 seconds (40 Test's)
Average Select from Table: 0.10626288652400 seconds (20 Test's)
Average Insert into Table: 3.54515728951000 seconds (20 Test's)
Average Update (Individual): 0.13025461435300 seconds (20 Test's)
Average Update All: 0.00989596843720 seconds (20 Test's)
Average Delete (Individual): 0.00109882275263 seconds (600 Test's)
Average Delete All: 0.00077251195908 seconds (20 Test's)
Average Alter Table: 1.40721149743000 seconds (16 Test's)
Average Rename Table: 0.02501308918000 seconds (60 Test's)
Average Smarty Render: 0.03921358585360 seconds (21 Test's)
Maximum Create Table: 2.51468610764000 seconds
Maximum Select from Table: 0.47155404090900 seconds
Maximum Insert into Table: 6.73046994209000 seconds
Maximum Update (Individual): 0.29396200180100 seconds
Maximum Update All: 0.01879382133480 seconds
Maximum Delete (Individual): 0.14146590232800 seconds
Maximum Delete All: 0.00111103057861 seconds
Maximum Alter Table: 2.92053914070000 seconds
Maximum Rename Table: 0.78347682952900 seconds
Maximum Smarty Render: 0.47892093658400 seconds
Minimum Create Table: 0.01050591468810 seconds
Minimum Select from Table: 0.02557611465450 seconds
Minimum Insert into Table: 1.65693902969000 seconds
Minimum Update (Individual): 0.07569193840030 seconds
Minimum Update All: 0.00518488883972 seconds
Minimum Delete (Individual): 0.00025391578674 seconds
Minimum Delete All: 0.00111103057861 seconds
Minimum Alter Table: 0.12055492401100 seconds
Minimum Rename Table: 0.00037193298340 seconds
Minimum Smarty Render: 0.00613808631897 seconds
Tests Took for Create Table: 6.89110970498000 seconds
Tests Took for Select from Table: 2.12525773048000 seconds
Tests Took for Insert into Table: 70.90314579010000 seconds
Tests Took for Update (Individual): 2.60509228707000 seconds
Tests Took for Update All: 0.19791936874400 seconds
Tests Took for Delete (Individual): 0.65929365158000 seconds
Tests Took for Delete All: 0.01545023918150 seconds
Tests Took forAlter Table: 22.51538395880000 seconds
Tests Took for Rename Table: 1.50078535080000 seconds
Tests Took for Smarty Render: 0.78427171707100 seconds

ADODB with standard MySQL Database class:
Average Create Table: 0.00771573781968 seconds (40 Test's) - 2232.81% Improvement
Average Select from Table: 0.11102730698100 seconds (20 Test's) - -5% Improvement
Average Insert into Table: 3.84030112028000 seconds (20 Test's) - -7.68% Loss
Average Update (Individual): -- 0.38914394378700 -- (20 Test's)
Average Update All: -- 0.29676079750100-- (20 Test's)
Average Delete (Individual): -- 0.13175892829900 -- (600 Test's)
Average Delete All: -- 0.02685403823850 -- (20 Test's)
Average Alter Table: -- 6.87397503853000 -- (16 Test's)
Average Rename Table: -- 1.36775803566000 -- (60 Test's)
Average Smarty Render: -- 1.00343608856000 -- (21 Test's)
Maximum Create Table: 0.24688816070600 seconds - 1018.55% improvement
Maximum Select from Table: 0.47188997268700 seconds - -0.08% Loss
Maximum Insert into Table: 14.23067998890000 seconds - 52.30% Loss
Maximum Update (Individual): -- 0.38914394378700 --
Maximum Update All: -- 0.29676079750100 --
Maximum Delete (Individual): -- 0.13175892829900 --
Maximum Delete All: -- 0.02685403823850 --
Maximum Alter Table: -- 6.87397503853000 --
Maximum Rename Table: -- 1.36775803566000 --
Maximum Smarty Render: -- 1.00343608856000 --
Minimum Create Table: 0.00022912025452 seconds - 4585.33% Improvement
Minimum Select from Table: 0.02932405471800 seconds - 12.78% Loss
Minimum Insert into Table: 2.26032400131000 seconds - 26.69% Loss
Minimum Update (Individual): -- 0.06345319747920 --
Minimum Update All: -- 0.00524020195007 --
Minimum Delete (Individual): -- 0.00027585029602 --
Minimum Delete All: -- 0.06345319747920 --
Minimum Alter Table: -- 0.19068908691400 --
Minimum Rename Table: -- 0.00038409233093 --
Minimum Smarty Render: -- 0.00841498374939 --
Tests Took for Create Table: 0.30862951278700 seconds - 2232.81% Improvement (Important this is based on totaity of tests)
Tests Took for Select from Table: 1.99849152565000 seconds - 106.34% Improvement (Important this is based on totaity of tests)
Tests Took for Insert into Table: 70.90314579010000 seconds - 7.69% Loss (Important this is based on totaity of tests)
Tests Took for Update (Individual): -- 3.55753850937000 --
Tests Took for Update All: -- 0.64790964126600 --
Tests Took for Delete (Individual): -- 0.78742003440900 --
Tests Took for Delete All: -- 0.04996681213380 --
Tests Took forAlter Table: -- 38.08730196950000 --
Tests Took for Rename Table: -- 4.18308091164000 --
Tests Took for Smarty Render: -- 1.96513366699000 --


You can make these statistics on a on minute cron with this benckmark 1.08 - Download: xoops2.5_benchmark_1.08.zip - 6.0Mbs - If you would like to download our bench test in spreed sheet, use this link - XOOPS_2.5_Benchmark_STD_vs_ADODB.zip.


You can check out ADODB the PHP Library athttp://adodb.sourceforge.net