gpt4 book ai didi

ruby-on-rails - 使用种子随机序列代替 100M 行关系表

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:06 24 4
gpt4 key购买 nike

我们在 Ruby on Rails/postgres 服务器上托管 iPhone 社交游戏的后端。

每个游戏都有 54 个问题通过数据库中的关系表连接起来。由于我们目前有大约 200 万场正在进行的比赛,因此关系表包含大约 1 亿行。这会占用大量内存。我们现在正在考虑构建一个算法,该算法使用由 game_id 播种的伪随机序列生成 54 个问题 id。这个想法是产生一个看似随机的问题集合,而不将明确的游戏问题关系保存到数据库中。这样我们就可以将负载从数据库转移到应用服务器。这是个好主意吗?

伪代码:

r = Random.new(game_id)
q1_id = r.rand(n_questions)
q2_id = r.rand(n_questions)
...

最佳答案

是的,您只需要一个确定性函数,它获取游戏 ID 并生成一个序列。像向 gameId 添加盐并对结果进行哈希处理这样简单的事情应该就可以了,然后只需将结果值映射到问题 ID 即可。 (看一下组合学的那种东西。)

如果您随后要处理的内容类似于以游戏标识符为键的问题标识符列表,并且您需要对答案的持久性支持,那么有比 RDBMS 更好的选择。首先,看看 Redis。

关于ruby-on-rails - 使用种子随机序列代替 100M 行关系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223833/

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