排行榜数据库设计分析中,为何实时排名实现存在难题?

2026-05-25 10:102阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2130个文字,预计阅读时间需要9分钟。

排行榜数据库设计分析中,为何实时排名实现存在难题?

很多网络游戏都设有排行榜,这里专门讨论一下这个排行榜背后的数据库设计。一开始我觉得这应该是一个简单的数据库设计问题。只需要一个实体,没有实体间的关系,也没有复杂的逻辑。

很多网游中都有排行榜,这里就专门讨论一下这个排行榜背后的数据库设计。一开始我觉得这是一个基本的数据库设计问题。只需要有一个实体,没有实体间的关系,没有复杂的逻辑。网络上也搜索不到太多关于这类设计的问题,好像根本不值得为其写个文章。但是在公司专门做了一个月的排行榜数据库设计。才发现问题根本没有看上去那么简单。甚至一篇文章都难以讲明白。不知自己误入歧途了,还是这个问题的确就是很复杂的。所以写个文章讲给大家,或许能有人一语道破。

一开始听到要设计一个排行榜,觉得很简单,一个外键加一个分数列,排名不保存在数据库中,每次查询都实时计算。不就得了?

接下来,就来讨论一下这种方案的可行性。先来描述一下经过最简化的基本要求:

1. 参与排行的设计用户量为1000万左右。

2. 并不要求实时,一小时更新一次。(我一开始的想法很天真,实时不是更好?所以才试了这个实时的排行榜)

3. 排行榜的结果要正确。(最废话的一条,其实很关键,直接导致实时方案作废。)

生产环境,数据库服务器:

CPU:双路4核,至强。

内存:32G。

开发、测试的环境:(以下运行时间数据基于此环境)

CPU:赛扬D 2.66G

内存:1G。

阅读全文

本文共计2130个文字,预计阅读时间需要9分钟。

排行榜数据库设计分析中,为何实时排名实现存在难题?

很多网络游戏都设有排行榜,这里专门讨论一下这个排行榜背后的数据库设计。一开始我觉得这应该是一个简单的数据库设计问题。只需要一个实体,没有实体间的关系,也没有复杂的逻辑。

很多网游中都有排行榜,这里就专门讨论一下这个排行榜背后的数据库设计。一开始我觉得这是一个基本的数据库设计问题。只需要有一个实体,没有实体间的关系,没有复杂的逻辑。网络上也搜索不到太多关于这类设计的问题,好像根本不值得为其写个文章。但是在公司专门做了一个月的排行榜数据库设计。才发现问题根本没有看上去那么简单。甚至一篇文章都难以讲明白。不知自己误入歧途了,还是这个问题的确就是很复杂的。所以写个文章讲给大家,或许能有人一语道破。

一开始听到要设计一个排行榜,觉得很简单,一个外键加一个分数列,排名不保存在数据库中,每次查询都实时计算。不就得了?

接下来,就来讨论一下这种方案的可行性。先来描述一下经过最简化的基本要求:

1. 参与排行的设计用户量为1000万左右。

2. 并不要求实时,一小时更新一次。(我一开始的想法很天真,实时不是更好?所以才试了这个实时的排行榜)

3. 排行榜的结果要正确。(最废话的一条,其实很关键,直接导致实时方案作废。)

生产环境,数据库服务器:

CPU:双路4核,至强。

内存:32G。

开发、测试的环境:(以下运行时间数据基于此环境)

CPU:赛扬D 2.66G

内存:1G。

阅读全文