大佬教程收集整理的这篇文章主要介绍了在Ruby on Rails应用程序中使用MySQL视图来提高性能,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的用户模型有很多关系(细节,地址,角色…)谁加载了渴望加载.这创建了非常巨大的SQL查询,在某些情况下,加载30个用户需要几分钟的时间.另一方面,去除渴望加载会产生数百个查询,最终我有同样的问题:加载页面很慢.
我曾经在Java&甲骨文,对于我用来创建视图的这种大查询,这些视图被缓存,以便更快的呈现.维护非常无聊,因为我不得不在视图脚本等中手动更新数据库字段.
但是它真的有非常棒的表演….所以我想知道有没有人试图实现一些事情,以利用Mysql视图的主动记录?
我只是做了一些基本测试,这里是我的观点(仅仅是几个例子,我有一个标准的Restful Authentication用户表,一个大的表“个人数据表”):
create view users_vs AS SELECT users.id,users.login,users.email,details.last_name,details.first_name,details.phone,details.fax,FROM `users` LEFT OUTER JOIN `details` ON details.user_id = users.id ;
然后一个模型:
class UsersV < ActiveRecord::Base end
在我的控制台中试过几件事:
u=UsersV.find(:first) # ok ! u=UsersV.find_by_last_name('smith') #=> ok ! us=UsersV.find_all_by_last_name('smith') #=> ok too !
查看日志,简单查询的处理方式与所有表查询相同
当然,这些假模型只是用来读取数据.
我在想:
>如果有人已经尝试过了?
>如果这是个好主意?
>如果我应该看看像memcached这样的东西…
因此,理想的解决方案是充分利用复杂查询的RDBMs.如果未缓存的查询仍然需要很长时间才能执行,Memcached将无法帮助您(您仍然需要运行它们来填充memcached),或者如果您无法容纳一点点时间(即缓存结果)必须要实时准确)和/或所涉及的表格经常被修改.
>在MySQL中查看是否可以进一步优化查询,这将需要毫秒而不是秒(添加适当的索引,运行ANALYZE等)>如果您有选择使用/尝试另一个RDBMS(如postgres),一定要试一试.与其他基于成本的引擎(如Oracle和POSTGRes)相比,MySQL与复杂的连接(InnoDB)相当糟糕.我从MySQL切换@R_801_4762@s,并且复杂的连接将需要30秒在MySQL(所有索引到位)需要毫秒在POSTGRes.如果使用PostgreS,可以很好地利用pgadminIII的图形说明计划工具.
以上是大佬教程为你收集整理的在Ruby on Rails应用程序中使用MySQL视图来提高性能全部内容,希望文章能够帮你解决在Ruby on Rails应用程序中使用MySQL视图来提高性能所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。