提升 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中文網其他相關文章!