提升 Rails 性能:利用原始 SQL 进行查询优化
缓慢的查询会显着影响 Rails 应用程序的性能。 解决此问题的一种方法是利用原始 SQL 来优化数据库交互。
从 ActiveRecord 迁移到原始 SQL
示例代码使用 ActiveRecord 连接和排序两个表中的数据。 我们可以通过 ActiveRecord::Base.connection.execute
直接使用原始 SQL 来增强这一点。 这是优化后的 SQL:
<code class="language-sql">sql = "SELECT * FROM payment_details JOIN projects ON payment_details.project_id = projects.id UNION SELECT * FROM payment_errors JOIN projects ON payment_errors.project_id = projects.id ORDER BY payment_details.created_at DESC, payment_errors.created_at DESC;" records_array = ActiveRecord::Base.connection.execute(sql)</code>
查询结果存储在records_array
中,可以轻松迭代和访问各个记录。
性能增强,尤其是在 Heroku 上
使用原始 SQL 通常会带来显着的性能提升,特别是在像 Heroku 这样的平台上,请求超时是一个常见的问题。 这是因为原始 SQL 绕过了 ActiveRecord ORM 层,减少了处理开销。
原始 SQL 使用的最佳实践
以上是原始 SQL 如何优化慢轨查询?的详细内容。更多信息请关注PHP中文网其他相关文章!