mirror of
https://codeberg.org/icewind/log-archiver.git
synced 2026-06-03 17:44:06 +02:00
optimized mat views
This commit is contained in:
parent
e2259b450a
commit
717b95334c
1 changed files with 56 additions and 4 deletions
60
schema.sql
60
schema.sql
|
|
@ -148,6 +148,39 @@ CREATE TRIGGER update_stats_on_log
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
EXECUTE PROCEDURE update_medic_stats();
|
EXECUTE PROCEDURE update_medic_stats();
|
||||||
|
|
||||||
|
CREATE MATERIALIZED VIEW ranked_medic_stats AS
|
||||||
|
SELECT user_names.steam_id, name, games, ubers, drops, medic_time, dps, dpu, dpg,
|
||||||
|
RANK () OVER (
|
||||||
|
ORDER BY drops DESC
|
||||||
|
) as drops_rank,
|
||||||
|
RANK () OVER (
|
||||||
|
ORDER BY dpu DESC
|
||||||
|
) as dpu_rank,
|
||||||
|
RANK () OVER (
|
||||||
|
ORDER BY dps DESC
|
||||||
|
) as dps_rank,
|
||||||
|
RANK () OVER (
|
||||||
|
ORDER BY dpg DESC
|
||||||
|
) as dpg_rank
|
||||||
|
FROM medic_stats
|
||||||
|
INNER JOIN user_names ON user_names.steam_id = medic_stats.steam_id AND medic_stats.steam_id NOT LIKE 'BOT%'
|
||||||
|
WHERE drops > 100;
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX ranked_medic_stats_steam_id_idx
|
||||||
|
ON ranked_medic_stats USING BTREE (steam_id);
|
||||||
|
|
||||||
|
CREATE INDEX ranked_medic_stats_drops_idx
|
||||||
|
ON ranked_medic_stats USING BTREE (drops);
|
||||||
|
|
||||||
|
CREATE INDEX ranked_medic_stats_dps_idx
|
||||||
|
ON ranked_medic_stats USING BTREE (dps);
|
||||||
|
|
||||||
|
CREATE INDEX ranked_medic_stats_dpu_idx
|
||||||
|
ON ranked_medic_stats USING BTREE (dpu);
|
||||||
|
|
||||||
|
CREATE INDEX ranked_medic_stats_dpg_idx
|
||||||
|
ON ranked_medic_stats USING BTREE (dpg);
|
||||||
|
|
||||||
CREATE VIEW log_medic_stats AS
|
CREATE VIEW log_medic_stats AS
|
||||||
SELECT
|
SELECT
|
||||||
id,
|
id,
|
||||||
|
|
@ -177,6 +210,12 @@ CREATE TABLE player_names (
|
||||||
CREATE UNIQUE INDEX player_names_steam_id_name_idx
|
CREATE UNIQUE INDEX player_names_steam_id_name_idx
|
||||||
ON player_names USING BTREE (steam_id, name);
|
ON player_names USING BTREE (steam_id, name);
|
||||||
|
|
||||||
|
CREATE INDEX player_names_steam_id_idx
|
||||||
|
ON player_names USING BTREE (steam_id);
|
||||||
|
|
||||||
|
CREATE INDEX player_names_count_idx
|
||||||
|
ON player_names USING BTREE (count);
|
||||||
|
|
||||||
CREATE INDEX player_names_search_idx
|
CREATE INDEX player_names_search_idx
|
||||||
ON player_names USING GIN (name gin_trgm_ops);
|
ON player_names USING GIN (name gin_trgm_ops);
|
||||||
|
|
||||||
|
|
@ -193,10 +232,23 @@ END;
|
||||||
$$
|
$$
|
||||||
LANGUAGE PLPGSQL;
|
LANGUAGE PLPGSQL;
|
||||||
|
|
||||||
CREATE TRIGGER update_names_on_log
|
CREATE MATERIALIZED VIEW common_player_names AS
|
||||||
AFTER INSERT OR UPDATE ON logs_raw
|
SELECT steam_id, name, count, use_time
|
||||||
FOR EACH ROW
|
FROM player_names
|
||||||
EXECUTE PROCEDURE update_player_names();
|
WHERE count > 100;
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX common_player_names_steam_id_name_idx
|
||||||
|
ON common_player_names USING BTREE (steam_id, name);
|
||||||
|
|
||||||
|
CREATE INDEX common_player_names_steam_id_idx
|
||||||
|
ON common_player_names USING BTREE (steam_id);
|
||||||
|
|
||||||
|
CREATE INDEX common_player_names_count_idx
|
||||||
|
ON common_player_names USING BTREE (count);
|
||||||
|
|
||||||
|
CREATE INDEX common_player_names_search_idx
|
||||||
|
ON common_player_names USING GIN (name gin_trgm_ops);
|
||||||
|
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW user_names AS
|
CREATE MATERIALIZED VIEW user_names AS
|
||||||
WITH names AS
|
WITH names AS
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue