From 4c147b2130e1c79b72c617a55f58bfc211a37c1f Mon Sep 17 00:00:00 2001 From: Leigh B Stoller Date: Fri, 2 Sep 2011 08:58:32 -0600 Subject: [PATCH] Add index and use "force index" in query; drops "more entries" time from 20 seconds to under 1. --- sql/database-create.sql | 3 ++- sql/updates/4/260 | 18 ++++++++++++++++++ www/showstats.php3 | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 sql/updates/4/260 diff --git a/sql/database-create.sql b/sql/database-create.sql index cc0482313..6d8e9f1a8 100644 --- a/sql/database-create.sql +++ b/sql/database-create.sql @@ -3681,7 +3681,8 @@ CREATE TABLE `testbed_stats` ( KEY `rsrcidx` (`rsrcidx`), KEY `exptidx` (`exptidx`), KEY `uid_idx` (`uid_idx`), - KEY `idxdate` (`end_time`,`idx`) + KEY `idxdate` (`end_time`,`idx`), + KEY `end_time` (`end_time`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- diff --git a/sql/updates/4/260 b/sql/updates/4/260 new file mode 100644 index 000000000..2f4385a75 --- /dev/null +++ b/sql/updates/4/260 @@ -0,0 +1,18 @@ +# +# Add key to testbed_stats +# +use strict; +use libdb; + +sub DoUpdate($$$) +{ + my ($dbhandle, $dbname, $version) = @_; + + if (!DBKeyExists("testbed_stats", "end_time")) { + DBQueryFatal("ALTER TABLE testbed_stats " . + "ADD KEY `end_time` (`end_time`)"); + } + return 0; +} + +1; diff --git a/www/showstats.php3 b/www/showstats.php3 index bffbcad6a..ad6303344 100644 --- a/www/showstats.php3 +++ b/www/showstats.php3 @@ -194,7 +194,7 @@ $query_result = DBQueryFatal("select t.exptidx,s.pid,s.eid,t.action,t.exitcode,t.uid, ". " r.pnodes,t.idx as statno,t.start_time,t.end_time, ". " s.archive_idx,r.archive_tag,t.uid_idx ". - " from testbed_stats as t ". + " from testbed_stats as t force index (end_time, idx) ". "left join experiment_stats as s on s.exptidx=t.exptidx ". "left join experiment_resources as r on r.idx=t.rsrcidx ". "$wclause ". -- GitLab