Heim > Datenbank > MySQL-Tutorial > Wie können rohe SQL-Abfragen die Leistung von Rails-Anwendungen verbessern?

Wie können rohe SQL-Abfragen die Leistung von Rails-Anwendungen verbessern?

Patricia Arquette
Freigeben: 2025-01-15 08:08:44
Original
428 Leute haben es durchsucht

How Can Raw SQL Queries Enhance Rails Application Performance?

Verwenden Sie natives SQL, um die Effizienz beim Abrufen von Rails-Anwendungsdaten zu optimieren

Wenn Sie in Bereitstellungsumgebungen wie Heroku auf Leistungsengpässe stoßen, sollten Sie erwägen, Ihre Rails-Anwendung mithilfe nativer SQL-Abfragen zu optimieren, was die Geschwindigkeit erheblich erhöhen und Anforderungszeitüberschreitungen reduzieren kann.

Sehen wir uns an, wie man den folgenden Rails-Code in eine native SQL-Abfrage umwandelt:

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

Um diese Abfrage mit nativem SQL auszuführen, befolgen Sie bitte diese Schritte:

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

Ergebnisse records_array ist ein Array, das die Ergebnisse der SQL-Abfrage enthält. Sie können diese Datensätze zur weiteren Verarbeitung durchlaufen. Dieser Ansatz umgeht die ActiveRecord-ORM-Schicht, was möglicherweise zu erheblichen Leistungssteigerungen führt.

Das obige ist der detaillierte Inhalt vonWie können rohe SQL-Abfragen die Leistung von Rails-Anwendungen verbessern?. 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