Tro*_*ron 1 mysql optimization activerecord ruby-on-rails
我正在开发一个与遗留数据库绑定的应用程序.主要模型基于一个愚蠢的大型100+列表.我不太了解ActiveRecord的内部工作原理,但在我看来,这个模型上的任何请求都在减慢,因为它创建了具有100多个属性的对象.我们称之为SlowModel.
在我的开发计算机上使用此模型渲染页面有时需要17秒.直接查询mysql查询只需要0.5~1秒.
我已经设法通过使用选择字段子集(20左右)的MySQL视图来加速应用程序的一部分.我们称之为QuickModel.使用视图是可以的,但不是最便携的解决方案.
我可能会继续尝试将此QuickModel添加到网站的其他部分,但我想知道是否有人有其他想法加速原始对象.例如,有没有办法在模型中指定activerecord应该忽略哪些列并避免构建?也许有特定的列类型(:text ??)导致ActiveRecord对象膨胀.
假设列具有适当的索引.
您可以使用ActiveRecord查找的:select选项指定模型查找中返回的列:
SlowModel.all(:select => 'id, col1, col2, col3')
Run Code Online (Sandbox Code Playgroud)
...将加载SlowModel的实例,只填充指定的列.
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |