铁轨,杂种,埃罗科表演



我正在使用轨道,在Heroku上与mongohq一起开发我的网站。

但是,我遇到了非常严重的性能问题。

我在每个用户页面上查询,加载所有数据的成本超过2秒数据并不多,只有30个音乐,每种音乐都可能具有大约1到3种不同的样式。

任何人都知道如何提高性能?

我已经尝试了大量方法,但仍然无法正常工作,Mongo显示每个查询都非常快。

这是代码:

     @musics = []           #get all user downloaded musics
     @uploaders = []        #record uploader of each music
     @styles = []           #record the styles of each music
     @user.mydownloads.each do |download_music|
        music = Music.find(download_music)                   #find the music by id
        @musics.insert(0, music)        
        uploader = music.user                                #find the uploader
        @uploaders.insert(0,uploader)
        @styles.insert(0,shortstyle(music.music_styles,10))  
        #shortstyle is a helper function in application helper to make the stylelooks nicer
     end

如果需要所有数据,我该如何提高性能?

非常感谢你们!

您的索引是什么?

另外, @user.mydownloads中有多少个项目?

这将导致n 1查询,如果 @user.mydownloads大(大于1或2个项目,请参见此SO线程),这可能非常糟糕)

最新更新