diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2020-12-14 09:06:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-14 09:06:34 +0100 |
commit | 216b85b053d091306e3311a21f5b050f70a75130 (patch) | |
tree | 10a6598ad72500a7284e605336e22d36a69cdadd /db/views | |
parent | a3b5675aa83f7fec4036888e0d94b626ad973f75 (diff) |
Fix performance on instances list in admin UI (#15282)
- Reduce duplicate queries - Remove n+1 queries - Add accounts count to detailed view - Add separate action log entry for updating existing domain blocks
Diffstat (limited to 'db/views')
-rw-r--r-- | db/views/instances_v01.sql | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/db/views/instances_v01.sql b/db/views/instances_v01.sql new file mode 100644 index 000000000..94acd61a1 --- /dev/null +++ b/db/views/instances_v01.sql @@ -0,0 +1,17 @@ +WITH domain_counts(domain, accounts_count) +AS ( + SELECT domain, COUNT(*) as accounts_count + FROM accounts + WHERE domain IS NOT NULL + GROUP BY domain +) +SELECT domain, accounts_count +FROM domain_counts +UNION +SELECT domain_blocks.domain, COALESCE(domain_counts.accounts_count, 0) +FROM domain_blocks +LEFT OUTER JOIN domain_counts ON domain_counts.domain = domain_blocks.domain +UNION +SELECT domain_allows.domain, COALESCE(domain_counts.accounts_count, 0) +FROM domain_allows +LEFT OUTER JOIN domain_counts ON domain_counts.domain = domain_allows.domain |