gpt4 book ai didi

mysql - 大量条目会导致性能呈指数级下降

转载 作者:行者123 更新时间:2023-11-29 10:14:15 25 4
gpt4 key购买 nike

在这个获取每个排行榜玩家排名的查询中,我的性能非常非常差。随着条目数量的增长(如预期),它呈指数增长。有没有办法优化这个?我认为我可以在每次更新时计算这个字段作为替代:

SELECT `s1`.*,COUNT(DISTINCT `s2`.`score`) AS `rank` FROM `leaderboards` `s1` 
JOIN `leaderboards` `s2`
ON(`s1`.`score` <= `s2`.`score` AND `s1`.`leaderboard` = `s2`.`leaderboard`)
GROUP BY `s1`.`leaderboard`,`s1`.`user_id`;

最佳答案

确保您有正确的复合索引

   table leaderboards (leaderboard, score)

并且您不应该在 select 中使用不涉及聚合函数且未在 group by 子句中提及的列因为这会为此列产生不可预测的结果这个习惯在 SQL 中已被弃用,并且在最新版本的 mysql 中会产生错误

  SELECT `s1`.`leaderboard`,`s1`.`user_id`, COUNT(DISTINCT `s2`.`score`) AS `rank` 
FROM `leaderboards` `s1`
JOIN `leaderboards` `s2` ON `s1`.`score` <= `s2`.`score`
AND `s1`.`leaderboard` = `s2`.`leaderboard`
GROUP BY `s1`.`leaderboard`,`s1`.`user_id`;

关于mysql - 大量条目会导致性能呈指数级下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50368816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com