Performance improvements in 2.1

Published
2008-05-18 16:09
Written by
So i've been looking a bit closely at performance for 2.1 (both database and usability) and am attempting to boost it up significantly compared to 2.0 (and prior). Here are some of the highlights
  • We've introduced a new database cache table (civicrm_cache) to cache a few database queries that are repeated a lot. Some of the specific queries include listing all the fields available for the contact types (individual/org/household). This is a combination of the built-in fields (name, address etc) and the custom fields added by the user. This reduces the number of queries invoked from 5 complex queries to 1 simple cache query (and an un-serialize)
  • We've added a column (group_type) to the profile table (civicrm_uf_group), so we know the profile type rather than recompute it every time we need it.
  • Thanx to Dave Lange who reported and did some analysis on this, we've reduced the number of LOWER( dbColumnName) LIKE 'value' to skip the LOWER part. Email is now stored as lower case, so we can skip the LOWER part in all email comparison. In his tests, these have improved performance a fair bit
  • Smart Groups
  • Hierarchical Select
  • Menu System
  • DeDupe
  • We will integrate the ACL changes into core either as a pluggable ACL architecture and/or via the hook system.
Overall 2.1 is shaping up to be a significant improvement over 2.0 :). You can get more details on the 2.1 feature set and release schedule on the CiviCRM v2.1 wiki page.
Filed under