在Heroku等部署環境中遇到效能瓶頸時,請考慮使用原生SQL查詢來優化您的Rails應用程序,這能顯著提高速度並減少請求逾時。
讓我們來看看如何將以下Rails程式碼轉換為原生SQL查詢:
<code class="language-ruby">@payments = PaymentDetail.joins(:project).order('payment_details.created_at desc') @payment_errors = PaymentError.joins(:project).order('payment_errors.created_at desc') @all_payments = (@payments + @payment_errors)</code>
使用原生SQL執行此查詢,請依照下列步驟操作:
<code class="language-ruby"># 编写原生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 created_at DESC;" # 直接在数据库上执行SQL查询 records_array = ActiveRecord::Base.connection.execute(sql)</code>
結果 records_array
將會是一個數組,包含SQL查詢的結果。您可以迭代這些記錄進行進一步處理。這種方法繞過了ActiveRecord ORM層,從而可能獲得顯著的效能提升。
以上是原始 SQL 查詢如何增強 Rails 應用程式效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!