CiviCRM Community Forums (archive)

*

News:

Have a question about CiviCRM?
Get it answered quickly at the new
CiviCRM Stack Exchange Q+A site

This forum was archived on 25 November 2017. Learn more.
How to get involved.
What to do if you think you've found a bug.



  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • General Discussion (please no support requests here!) (Moderator: Michał Mach) »
  • CiviCRM Search performance/scalability
Pages: [1]

Author Topic: CiviCRM Search performance/scalability  (Read 2939 times)

outinsun

  • Guest
CiviCRM Search performance/scalability
March 27, 2009, 12:19:05 pm
I am looking to use CiviCRM in a high-volume environment that will involve a lot of searching. Could peak at approx. 10 searches per minute, against a database of 50,000 contacts, with each search crossing an intersection of tags, a couple of relationship types, and 10+ kinds of custom data fields spread across several custom groups. I like the way CiviCRM builds its searches dynamically based on the custom data schema, but am wondering if I need to do some hard-coding for performance reasons.

Donald Lobo

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 15963
  • Karma: 470
    • CiviCRM site
  • CiviCRM version: 4.2+
  • CMS version: Drupal 7, Joomla 2.5+
  • MySQL version: 5.5.x
  • PHP version: 5.4.x
Re: CiviCRM Search performance/scalability
March 27, 2009, 02:14:16 pm

a couple of thoughts and comments:

1. try to group the 10+ fields into 1-3 custom groups. i.e. reduce the number of left joins

2. if possible use a smart group for a subset of the search (maybe the tag and/or relatioship type part). This will reduce the number of LEFT JOINs (a smart group adds one more left join and caches its data in a cache table)

3. a discussion about performance without knowing your network architecture and layout is kinda moot. Do keep your DB server in a seperate machine and ensure you are using a large cache for mysql. Having access to someone who knows / can learn about improving mysql performance might be important :)

if u notice any bottleneck queries, let us know

lobo
A new CiviCRM Q&A resource needs YOUR help to get started. Visit our StackExchange proposed site, sign up and vote on 5 questions

outinsun

  • Guest
Re: CiviCRM Search performance/scalability
March 27, 2009, 02:19:32 pm
Quote from: Donald Lobo on March 27, 2009, 02:14:16 pm

a couple of thoughts and comments:

1. try to group the 10+ fields into 1-3 custom groups. i.e. reduce the number of left joins
May or may not be feasible as the custom groups have semantic value unto themselves.

Quote
2. if possible use a smart group for a subset of the search (maybe the tag and/or relatioship type part). This will reduce the number of LEFT JOINs (a smart group adds one more left join and caches its data in a cache table)
This is definitely feasible, and a great suggestion.

Quote
3. a discussion about performance without knowing your network architecture and layout is kinda moot. Do keep your DB server in a seperate machine and ensure you are using a large cache for mysql. Having access to someone who knows / can learn about improving mysql performance might be important :)
Understood and agreed. Assume we will make fairly intelligent architectural decisions. Was trying to understand what issues specific to Civi design there might be aside from this. Your comments above are helpful (as usual  ;D). Thanks.

Quote
if u notice any bottleneck queries, let us know
Will do.

Pages: [1]
  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • General Discussion (please no support requests here!) (Moderator: Michał Mach) »
  • CiviCRM Search performance/scalability

This forum was archived on 2017-11-26.