diff options
author | Jason (Jayce^) Hall <jayce@lug-nut.com> | 2014-09-02 11:00:08 -0600 |
---|---|---|
committer | Jason (Jayce^) Hall <jayce@lug-nut.com> | 2014-09-02 11:00:08 -0600 |
commit | 3317a32f572a2e3605071410e7ddd8082e0b03ee (patch) | |
tree | b79062d6098bcc10da1dad4a31d116ae58ff7758 /FS | |
parent | 654cdedcfe361fc07669a5f9d1e094b8d26a4d39 (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.pm | 17 |
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) |