Heim > Datenbank > MySQL-Tutorial > Wie kann ich die Rails-Leistung durch die Ausführung von Raw-SQL-Abfragen optimieren?

Wie kann ich die Rails-Leistung durch die Ausführung von Raw-SQL-Abfragen optimieren?

Linda Hamilton
Freigeben: 2025-01-15 07:17:44
Original
997 Leute haben es durchsucht

How Can I Optimize Rails Performance by Executing Raw SQL Queries?

Roh-SQL-Abfragen in Rails ausführen

Um die Leistung einer Rails-Anwendung zu verbessern, können Sie die Verwendung von Roh-SQL-Abfragen in Betracht ziehen, insbesondere auf Heroku bei denen Anfragen anfällig für Zeitüberschreitungsfehler sind. Sehen wir uns an, wie man ein bestimmtes Code-Snippet in Roh-SQL umwandelt:

@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)
Nach dem Login kopieren

Dieser Code kombiniert zwei Zuordnungen, @zahlungen und @zahlung_errors, zu @all_zahlungen. Um diese Abfrage als Roh-SQL auszuführen, können Sie die folgenden Schritte ausführen:

sql = "SELECT * FROM payment_details
        JOIN projects ON payment_details.project_id = projects.id
        ORDER BY payment_details.created_at DESC
        UNION
        SELECT * FROM payment_errors
        JOIN projects ON payment_errors.project_id = projects.id
        ORDER BY payment_errors.created_at DESC;"

records_array = ActiveRecord::Base.connection.execute(sql)
Nach dem Login kopieren

Das resultierende Records_Array enthält ein Array von Datensätzen, die Sie aus Ihrer SQL-Abfrage erhalten haben, sodass Sie diese nach Bedarf durchlaufen können. Dieser Ansatz ist schneller als der ursprüngliche Ruby-Code, da er die ORM-Schicht von Rails umgeht und direkt auf die Datenbank zugreift.

Das obige ist der detaillierte Inhalt vonWie kann ich die Rails-Leistung durch die Ausführung von Raw-SQL-Abfragen optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage