gpt4 book ai didi

mysql - 排行榜排名的计数语句的成本?

转载 作者:行者123 更新时间:2023-11-30 23:02:19 26 4
gpt4 key购买 nike

我正在使用 mysql 玩游戏。我有一个包含大约 150,000 条记录的分数表。该表如下所示:

fk_user_id | high_score

high_score 列是一个整数。它上面有一个索引。我想通过运行以下命令来计算用户的排名:

SELECT COUNT(*) AS count FROM scores WHERE high_score >= [x]

所以将用户当前的 high_score 提供给上面,我可以获得他们的排名。这个想法是,每次用户查看个人资料页面时,我都会运行上面的代码来获得排名。

我想知道这有多贵,我是否应该走这条路。每次发出查询时,mysql 是否都扫描整个表?这是一个疯狂的想法吗?

更新:这是“解释”关于查询的内容:

id: 1

select_type: SIMPLE

table: scores

type: range

possible_keys: high_score

key: high_score

key_len: 5

ref: null

rows: 1

extra: Using where; Using index

谢谢

最佳答案

MySQL 正在扫描整个表以查找您要求它返回的每条记录。

为什么要使用 count(*) 不能使用 count(distinct User_ID)count(user_ID)

您应该已经将该列编入索引,我相信它会准确地返回您的结果。

SELECT COUNT(distinct user_ID) AS count FROM scores WHERE high_score >= [x]

关于mysql - 排行榜排名的计数语句的成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430271/

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