所以有可能没有办法解决这个问题,但我想我会问:
我设置了一个Postgresql DB。第一个表包含回放,每个回放都有10个唯一的玩家(一个有很多关系)。我想根据我的搜索结果呈现一个JSON,其中包含播放器的回放。然而,我拉出了大量的回放(2000) --它们都有10个玩家,这意味着要搜索20,000个玩家。
下面是索引搜索当前的样子:
def index
@replays = Replay.where(map_id: params['map_id'].to_i)
@replays = @replays.reverse
render json: @replays[0..2000].to_json(include: [:players])
end
搜索需要这么长时间:
Completed 200 OK in 639596ms (Views: 42.1ms | ActiveRecord: 329252.3ms)
有没有更好的方法可以搜索和呈现JSON,而不需要这么长时间?值得注意的是,仅仅搜索2k重放,20k播放器,甚至是单个特定的播放器重放只需要几秒钟(第一次搜索本身也只需要几秒),所以我认为这是一个音量问题。
https://stackoverflow.com/questions/47475634
复制相似问题