From 6a70c604725f1403f55286afb8ebfb307f1a5c4d Mon Sep 17 00:00:00 2001
From: Joe Murray <joe.murray@jmaconsulting.biz>
Date: Mon, 14 Sep 2015 11:40:40 -0400
Subject: [PATCH] Added indexes to temp tables on join fields

---
 CRM/Yoteup/Form/Report/IndividualCounseller.php | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/CRM/Yoteup/Form/Report/IndividualCounseller.php b/CRM/Yoteup/Form/Report/IndividualCounseller.php
index f149991..99eda4a 100644
--- a/CRM/Yoteup/Form/Report/IndividualCounseller.php
+++ b/CRM/Yoteup/Form/Report/IndividualCounseller.php
@@ -328,6 +328,8 @@ class CRM_Yoteup_Form_Report_IndividualCounseller extends CRM_Report_Form {
       FROM {$this->_drupalDatabase}.watchdog
       GROUP BY SUBSTRING_INDEX(SUBSTRING_INDEX(location, '://', -1), '.', 1)";
     $dao = CRM_Core_DAO::executeQuery($sqlA);
+    $sqlA = "ALTER TABLE civicrm_watchdog_temp_a ADD INDEX idx_purl (purl) USING HASH;"
+    $dao = CRM_Core_DAO::executeQuery($sqlA);
     
     $sql = "CREATE TEMPORARY TABLE civicrm_watchdog_temp_b AS
       SELECT {$this->_aliases['civicrm_contact']}.id, p.purl_145, first_visit
@@ -335,6 +337,8 @@ class CRM_Yoteup_Form_Report_IndividualCounseller extends CRM_Report_Form {
       INNER JOIN civicrm_value_nrmpurls_5 p ON {$this->_aliases['civicrm_contact']}.id = p.entity_id
       INNER JOIN civicrm_watchdog_temp_a w ON w.purl = p.purl_145 COLLATE utf8_general_ci";
     $dao = CRM_Core_DAO::executeQuery($sql);
+    $sql = "ALTER TABLE civicrm_watchdog_temp_b ADD INDEX idx_purl (purl_145) USING HASH, ADD INDEX idx_c_id ({$this->_aliases['civicrm_contact']}.id) USING HASH;"
+    $dao = CRM_Core_DAO::executeQuery($sql);
 
     $sql = "CREATE TEMPORARY TABLE civicrm_watchdog_temp_c AS
       SELECT id AS contact_id, GROUP_CONCAT(brochure ORDER BY brochure SEPARATOR ', ') as brochures FROM (SELECT cc.id, wsd22.data as brochure
@@ -345,6 +349,9 @@ class CRM_Yoteup_Form_Report_IndividualCounseller extends CRM_Report_Form {
       WHERE ws.nid = 72 AND wsd22.data IS NOT NULL and wsd22.data <> '' AND wsd22.cid IN (22,23,24)) as s 
       GROUP BY s.id";
     $dao = CRM_Core_DAO::executeQuery($sql);
+    $sql = "ALTER TABLE civicrm_watchdog_temp_c ADD INDEX idx_c_id (contact_id) USING HASH;"
+    $dao = CRM_Core_DAO::executeQuery($sql);
+
   }
   
   function createSurveyResponse() {
-- 
GitLab