Database Abstraction Class

Portfolio

Sole Developer

After publishing a high-volume site, performance was not meeting expectations.  Page generation times were exceeding 1 second.

I determined that fully 600 milliseconds of page generation was devoted to the loading and initialization of the ADOdbA database abstraction library for PHP and Python based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a fairly consistent way regardless of the underlying database system storing the information. abstraction class.  I created a new, custom, abstraction class that emulated all of the desired features of ADOdbA database abstraction library for PHP and Python based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a fairly consistent way regardless of the underlying database system storing the information. and initialized in less than 1/6th of the time.  No site-specific database queries needed to be re-written.  The class also handled error-reporting more efficiently, and fallback connection options were added to further improve robustness.

The result was a huge improvement in site performance ( page load time reduced by more than 500 milliseconds ) and the class was eventually adopted as the standard database abstraction class company-wide.


Features:
  • Flexible framework - allows versions for different connection types.
  • Multi-query function for simple handling of stored procedure ( routine ) calls.
  • Connection reset - allows class to re-connect to database server if connection lost/broken.
  • Connection fallback - allows specification of fallback database server if primary fails.
  • On-screen ( development ) -or- email ( live ) error reporting.
  • Query tracking / timing for performance tuning of queries.
  • Additional custom query escaping for attack prevention.
  • Pre-fetch of row count and first row of data on successful query.
  • Simple insert or update with key => value array.
Portfolio
php java W3C jQuery jQuery Mobile Knockout Omniture Google Analytics SVN Apache MySQL Adobe Zend MCSE