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