Add force index in report mysql request to avoid full scan table

This commit is contained in:
Nicolas Le Goff
2012-11-14 16:58:16 +01:00
parent 291e46c21a
commit 3c318c5c6e
8 changed files with 72 additions and 76 deletions

View File

@@ -44,8 +44,8 @@ class module_report_sqlquestion extends module_report_sql implements module_repo
activite,
fonction
FROM (`log_search`)
INNER JOIN log ON (log.id = log_search.log_id)
INNER JOIN log_colls ON (log.id = log_colls.log_id)";
INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)";
$this->sql .= " WHERE " . $report_filter['sql'];
@@ -63,8 +63,8 @@ class module_report_sqlquestion extends module_report_sql implements module_repo
TRIM(" . $this->getTransQuery($this->groupby) . ") as " . $this->groupby . ",
SUM(1) as nb
FROM (`log_search`)
INNER JOIN log ON (log.id = log_search.log_id)
INNER JOIN log_colls ON (log.id = log_colls.log_id)
INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
";
$this->sql .= " WHERE " . $report_filter['sql'];
@@ -89,8 +89,8 @@ class module_report_sqlquestion extends module_report_sql implements module_repo
$sql = "
SELECT DISTINCT(" . $this->getTransQuery($field) . ") as val
FROM (`log_search`)
INNER JOIN log ON (log.id = log_search.log_id)
INNER JOIN log_colls ON (log.id = log_colls.log_id)
INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
";
if ($report_filter['sql'])