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