如果在以下条件下运行此查询,我想知道对性能的影响。
查询:
select `players`.*, count(`clicks`.`id`) as `clicks_count`
from `players` left join `clicks` on `clicks`.`player_id` = `players`.`id`
group by `players`.`id`
order by `clicks_count` desc
limit 1
条件:
在clicks表中我希望得到
在1分钟内插入1000次
clicks表将包含更多
则1000000行
玩家表将包含
10000行
球员桌每5人一张
分钟
如果我在1分钟内运行1000次查询,我想知道性能方面的期望值。
谢谢
最佳答案
该查询在毫秒内永远不会在表中运行任何有意义的数据量。它将运行两个完整的表扫描,将这两个表连接在一起,聚合混乱,并从中获取最上面一行。
使用触发器将总数存储在玩家中,并索引该字段。然后您就可以完全避免加入:
select p.* from players p order by clicks_count desc limit 1
关于mysql - mysql查询与性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6090460/