This is the 3rd in my 'Performance for Guppies' blog series. The metaphor is wearing a pretty thin now - but anyone who remembers the history of the api team will know I'm not above flogging a dead metaphor or a bad joke for several years past it's sell by date. Honestly they get really bad and then they become funny again - think John Travolta, William Shatner, Donald Trump's comb-over.
However, I do want to build on my previous blog - and this time more specifically targetting devs and query writers because I found (drum roll) another bad query which suffers from the same (non obvious) problem as the one discussed in the previous blog.
Quick recap on principles from the last 2 blogs
I hit a situation recently when a customer asked me why it was impossible to run dedupe rules on the street_address field. I tried his rules out and indeed they were server-destroyingly slow. As in my previous blog there are things developers should do differently to prevent this - but there are things that an admin can avoid in order to get better performance. Deduping is inherently prone to slow queries so understanding what rules will or won't perform well can be handy.
The way deduping works is it creates a table of matches based on the...
If you are as guppy-minded as I am then slow page loads can send you into a bit of a spin. While that little icon whirs I start to engage in some checking behaviour (facebook, email, IRC), which leaves me with enough to ponder that I go to grab a cup of tea. Coming back I wonder where I got to, click refresh and the cycle starts again.
I've been looking into performance issues for a few organisations lately and I want to share some of what I have found in the process in what I hope will be a series of blogs. In this first one my goal is to explain one thing that can slow queries down ... to non-technical readers. There are also some things you can look at doing on your own site with no technical help.
The average size of database a CiviCRM core developer works with is ... exactly 203 contacts (which is co-incidentally the sample data set you get when you install a dev environment). Sometimes things are fast on these sites but slow on much bigger sites, which means...Read more