gpt4 book ai didi

sql - 在 Web 应用程序中提供快速 `select count(*)` 功能

转载 作者:行者123 更新时间:2023-11-29 11:34:37 24 4
gpt4 key购买 nike

我正在重新实现一个应用程序以支持全国工程竞赛,将其从本地服务器移至云端。

为了告诉团队他们此刻的位置,查询的形式为

select 1 + count(*) from team where where score < ?

团队得分动态变化。可能有多达 200 万个团队,我需要每秒处理至少 10 个这样的查询。

原始版本通过使用单独的 Berkeley 团队/分数记录数据库获得了所需的性能(实际上它已经用 1999 年的硬件实现了)。 Berkeley DB 中有一个“记录号”功能,它提供了完全正确的功能,而且速度非常快。

Heroku 显然无法支持 Berkeley DB。 PostgreSQL,他们的标准数据库,通过全表或索引扫描来执行 select count(*),这太慢了。

关于如何进行的任何想法?我不喜欢 Heroku,但必须转向某种云解决方案。

最佳答案

使用redis将您的团队数据存储在一个有序集合中。然后 ZRANK函数将返回您需要的计数。 Redis 总体上非常快,ZRANK 函数的预期复杂度为 O(log N)。它是通过跳跃列表实现的。

关于sql - 在 Web 应用程序中提供快速 `select count(*)` 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769823/

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