首頁 >資料庫 >mysql教程 >原始 SQL 如何最佳化慢軌查詢?

原始 SQL 如何最佳化慢軌查詢?

Barbara Streisand
Barbara Streisand原創
2025-01-15 09:38:43308瀏覽

How Can Raw SQL Optimize Slow Rails Queries?

提升 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。過度依賴會損害程式碼的可維護性。
  • 始終參數化您的查詢以減輕 SQL 注入漏洞。
  • 嚴格的測試對於確保原始 SQL 查詢產生正確的結果至關重要。

以上是原始 SQL 如何最佳化慢軌查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn