Heim >Datenbank >MySQL-Tutorial >Wie kann Raw SQL langsame Rails-Abfragen optimieren?
Steigerung der Rails-Leistung: Nutzung von Raw SQL zur Abfrageoptimierung
Langsame Abfragen können die Leistung Ihrer Rails-Anwendung erheblich beeinträchtigen. Ein Ansatz zur Lösung dieses Problems ist die Verwendung von Roh-SQL zur Optimierung Ihrer Datenbankinteraktionen.
Migration von ActiveRecord zu Raw SQL
Der Beispielcode verwendet ActiveRecord, um Daten aus zwei Tabellen zu verbinden und zu ordnen. Wir können dies verbessern, indem wir direkt Roh-SQL über ActiveRecord::Base.connection.execute
einsetzen. Hier ist das optimierte 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>
Die Abfrageergebnisse werden in records_array
gespeichert, was eine einfache Iteration und den Zugriff auf einzelne Datensätze ermöglicht.
Verbesserte Leistung, insbesondere bei Heroku
Der Einsatz von Roh-SQL führt häufig zu erheblichen Leistungsverbesserungen, insbesondere auf Plattformen wie Heroku, wo Zeitüberschreitungen bei Anfragen häufig auftreten. Dies liegt daran, dass Raw-SQL die ActiveRecord-ORM-Schicht umgeht und so den Verarbeitungsaufwand reduziert.
Best Practices für die Verwendung von Raw SQL
Das obige ist der detaillierte Inhalt vonWie kann Raw SQL langsame Rails-Abfragen optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!