我正在重新实现一个支持全国工程竞赛的应用程序,将其从本地服务器迁移到云端。
为了告诉团队他们目前所处的位置,查询的形式如下
select 1 + count(*) from team where where score < ?
团队分数的变化非常动态。可能有多达200万个团队,我每秒至少需要处理10个这样的查询。
原始版本通过使用单独的Berkeley DB的团队/分数记录获得了所需的性能(实际上它已经在1999年的硬件中做到了)。在Berkeley DB中有一个"record number“特性,它提供了正确的功能,而且速度非常快。
Heroku显然没有办法支持Berkeley