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>
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>
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!