小编and*_*jdg的帖子

使用多个连接和分组优化 SQL 查询 (Postgres 9.3)

我浏览了一些其他帖子并设法使我的查询运行得更快。但是,我对如何进一步优化此查询感到茫然。我将在一个网站上使用它,它会在页面加载时执行查询,但是 5.5 秒对于等待应该更简单的东西来说太长了。最大的表大约有 4,000,000 行,其他的每行大约有 400,000。

表结构

比赛

id BIGINT PRIMARY KEY,
region TEXT,
matchType TEXT,
matchVersion TEXT
Run Code Online (Sandbox Code Playgroud)

团队

matchid BIGINT REFERENCES match(id),
id INTEGER,
PRIMARY KEY(matchid, id),
winner TEXT
Run Code Online (Sandbox Code Playgroud)

冠军

id INTEGER PRIMARY KEY,
version TEXT,
name TEXT
Run Code Online (Sandbox Code Playgroud)

物品

id INTEGER PRIMARY KEY,
name TEXT
Run Code Online (Sandbox Code Playgroud)

参与者

PRIMARY KEY(matchid, id),
id INTEGER NOT NULL,
matchid BIGINT REFERENCES match(id),
championid INTEGER REFERENCES champion(id),
teamid INTEGER,
FOREIGN KEY (matchid, teamid) REFERENCES team(matchid, id),
magicDamageDealtToChampions REAL,
damageDealtToChampions REAL,
item0 TEXT,
item1 TEXT,
item2 …
Run Code Online (Sandbox Code Playgroud)

postgresql join sql-optimization postgresql-performance postgresql-9.3

2
推荐指数
1
解决办法
2147
查看次数