【发布时间】:2018-12-08 03:37:53
【问题描述】:
我目前正在使用以下查询来选择最近连胜的球员,并且该查询效果很好,除了在处理大量记录时加载时间过长。
select sum(id > coalesce((select max(id) from cc6_MensLeague_rounds p2 where p2.player = 1184 and p2.outcome = 1),0)) as current from cc6_MensLeague_rounds p where player = 1184 and outcome = 2;
我的问题是……有没有更有效的方法可以在更短的时间内返回相同的结果?
这个查询的预期输出是
Current
6
我在以下位置设置了一个 MySql 小提琴: https://www.db-fiddle.com/f/nMKRZe4EAHwqh1wfmsUbrQ/0
【问题讨论】:
-
索引是你的朋友——特别是(我猜)(玩家、结果)的复合键
-
谢谢 Strawberry,不太清楚该怎么做,能否请您详细说明一下主题或指出任何可能有用的好资源?
-
@YarnellArsenault 搜索 mysql create index 你会得到很多资源,包括在这个网站上——比如this one
标签: mysql select sum max coalesce