View Issue Details

IDProjectCategoryView StatusLast Update
33PHPOF2_Driver_mysqliDefaultpublic29 Dec 2008 17:27
Reportermrosenquist Assigned Totimj  
PrioritynormalSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version0.10.1Fixed in Version0.10.1 
Summary33: Table schema discovery via MDB2 is slow - implement MySQL-specific optimisation
DescriptionCurrently Discover Schema uses The MDB2 reverse manager with is built to be flexible but may not have the performance that "show create table " from phpof1 had. Analysis with xdebug shows a large amount of time being spent discovering the schema in typical situations.

Implementing database-specific optimisations of this important process could possibly reap large performance gains. In that case, where there are no specific optimisations, the schema discovery should be passed down to MDB2 as normal.
TagsNo tags attached.

Relationships

parent of 40 closedtimj PHPOF2 Add ability to load driver-specific optimisations at runtime 

Activities

timj

13 Mar 2008 22:29

manager   ~33

I have got this up and running internally.
This isn't necessarily statistically very good, but I did a simple test instantiating a PHPOF2_DBTable object 10,000 times on a two-column table.

Without optimisation it took 33.72 seconds.
With optimisation it took 5.81 seconds!

Nearly 600% increase!

timj

13 Mar 2008 22:34

manager   ~35

Fixed in r1029

Issue History

Date Modified Username Field Change
5 Mar 2008 15:09 mrosenquist New Issue
9 Mar 2008 21:51 timj Target Version => 0.10.1
9 Mar 2008 22:11 timj Summary Negative performance of PHPOF2 DBTable Discover schema => Table schema discovery via MDB2 is slow - implement MySQL-specific optimisation
9 Mar 2008 22:11 timj Description Updated
9 Mar 2008 22:22 timj Project PHPOF2 => PHPOF2_Driver_mysqli
9 Mar 2008 22:52 timj Status new => assigned
9 Mar 2008 22:52 timj Assigned To => timj
13 Mar 2008 21:03 administrator Relationship added parent of 40
13 Mar 2008 22:29 timj Note Added: 33
13 Mar 2008 22:34 timj Status assigned => resolved
13 Mar 2008 22:34 timj Fixed in Version => 0.10.1
13 Mar 2008 22:34 timj Resolution open => fixed
13 Mar 2008 22:34 timj Note Added: 35
29 Dec 2008 17:27 timj Status resolved => closed