summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorJason (Jayce^) Hall <jayce@lug-nut.com>2014-09-02 11:00:08 -0600
committerJason (Jayce^) Hall <jayce@lug-nut.com>2014-09-02 11:00:08 -0600
commit3317a32f572a2e3605071410e7ddd8082e0b03ee (patch)
treeb79062d6098bcc10da1dad4a31d116ae58ff7758 /FS
parent654cdedcfe361fc07669a5f9d1e094b8d26a4d39 (diff)
Add in history_usernum and history_username indices. This allows for
searches on *who* made changes to run faster. The best example of this is on the homepage when it looks for the last modified customers by the current user. On our system that query could take 5 minutes across so many history records. Now takes a manageable amount of time with this index
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/Schema.pm17
1 files changed, 17 insertions, 0 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 2aba2eab5..c635ea0a0 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -243,6 +243,23 @@ sub dbdef_dist {
],
});
+ #necessary for queries that want to look at *who* made changes
+ $h_indices{"h_${table}_usernum"} =
+ DBIx::DBSchema::Index->new({
+ 'name' => "h_${table}_usernum",
+ 'unique' => 0,
+ 'columns' => [ 'history_usernum'],
+ });
+
+ # necessary because of the evil OR username for older data, be really nice if everything was just migrated to usernum and we could drop username
+ # This will not be helpful to mysql, but postgres smartly does a bitmap across both indexes, mysql will just use one
+
+ $h_indices{"h_${table}_username"} =
+ DBIx::DBSchema::Index->new({
+ 'name' => "h_${table}_username",
+ 'unique' => 0,
+ 'columns' => [ 'history_username'],
+ });
}
my $primary_key_col = $tableobj->column($tableobj->primary_key)