mysql - 使用 SQL 在动态环境中分页排行榜查询

标签 mysql sql

我有一个简单的排行榜系统。当这需要 2 个查询(一个查询在表中获取其分数的位置,另一个获取其周围的页面)并且可能会在它们之间到达新分数时,如何将结果页面集中在用户分数上。锁定表是唯一的方法吗?或者有某种原子方法吗?如果我在偏移值中嵌入查询,这是原子的吗?

最佳答案

最简单的解决方案之一是获取可见页面+两侧的一些额外内容。即使有新记录进入,您也应该几乎始终拥有足够的数据来将 UI 置于事件玩家的中心。

但是,您应该始终准备好应对没有足够数据使玩家居中的情况 - 排行榜的顶部和底部等。

如果玩家根本没有出现在页面中,您必须再发出一两个请求。然而,玩家在短时间内(完成两个查询只需几秒钟)被推出页面的几率非常低,因此只要 UI 不挂起,体验就应该很好。

关于mysql - 使用 SQL 在动态环境中分页排行榜查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15195800/

相关文章:

php - 在index.php mysql中显示2个表

mysql - 如何在同一查询中执行连续的 SELECTS

python - psycopg2.编程错误: column "none" does not exist - Update Statement

php - SQL:论坛按行为排序(在 Codeigniter 中)

mysql - 使用 findAll 函数将选择日期序列化到列之间

php - 如何安装 laravel 已经建好的网站

java - Android:是否应该以异步方式访问应用程序中的数据库?

mysql - 如何加快 MYSQL 更新速度?

php - 是否有可以完全以这种方式编码为 JSON 的 MySQL 查询?

mysql - SQL:使用日期计算每天的总变化