gpt4 book ai didi

ruby-on-rails - ActiveRecord View 与表(在 Rails 4 中)

转载 作者:行者123 更新时间:2023-11-29 12:19:25 24 4
gpt4 key购买 nike

我只是通过阅读一些博客文章和一些关于如何在 Rails 中设置 View 的教程才开始了解 ActiveRecord 中的 View 。

我想知道的是,使用 View 而不是对现有 ActiveRecord 表进行查询有哪些优点和缺点?使用 View 是否有真正的、可衡量的性能优势?

例如,我有一个包含订单、订单项和产品的标准商家应用程序。对于管理仪表板,我有各种查询,其中许多查询是我在代码中经常重复使用的查询 - 即从该订单返回 user_id、order_id 和 total_revenue 的查询。从业务角度来看,许多好的统计数据都基于该核心查询。在什么时候切换到 View 才有意义?

关于 View 的 ActiveRecord 文档也有点稀疏,因此非常感谢任何对一些关于原因和方式的好资源的引用。

澄清:我不是在谈论 HTML View ,而是 SQL database views .本质上,性能优势是否在 ActiveRecord 实现中得以维持?由于文档稀疏,如果您实现不当(即任何不明显的问题),是否存在任何潜在的障碍,无法获得那些可能会失去的性能优势?

最佳答案

我从另一个离线开发人员那里获得了这些信息,所以我在这里回答我自己的问题以防其他人偶然发现。

基本上,从 Rails 3.1 开始,ActiveRecord 开始实现准备好的语句,这些语句提前预处理和缓存 SQL 语句模式,以便稍后允许更快的查询响应。您可以在 this blog post 中阅读更多相关信息.

这实际上可能不会导致切换到 PostgreSQL 中的 View 带来太多好处,因为 View 可能不会比 PG 中的准备好的语句执行得更好。

关于 prepared statements 的 PostgreSQL 文档看起来清晰且写得很好。更多关于 PostgreSQL View 性能的想法可以在 this stackoverflow post 中找到。 .

此外,您的 Rails 应用更有可能因 N+1 查询而出现性能问题 - this is a great post这解释了问题以及通过预先加载来防止它的最简单方法之一。

关于ruby-on-rails - ActiveRecord View 与表(在 Rails 4 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34500059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com