Meningkatkan Prestasi Rel dengan Pertanyaan SQL Mentah
Untuk pertanyaan kompleks yang melibatkan set data yang banyak, menggunakan SQL mentah boleh meningkatkan prestasi secara dramatik, terutamanya pada platform seperti Heroku yang masa tamat permintaan merupakan isu yang berpotensi. Berikut ialah cara untuk menyepadukan SQL mentah ke dalam aplikasi Rails anda:
<code class="language-ruby">sql = "SELECT * FROM payment_details AS pd JOIN projects AS p ON pd.project_id = p.id UNION ALL SELECT * FROM payment_errors AS pe JOIN projects AS p ON pe.project_id = p.id ORDER BY pd.created_at DESC, pe.created_at DESC" records_array = ActiveRecord::Base.connection.execute(sql)</code>
Coretan kod ini menunjukkan:
sql
) menggunakan UNION ALL
untuk menggabungkan data daripada payment_details
dan payment_errors
jadual, digabungkan dengan jadual projects
.ActiveRecord::Base.connection.execute(sql)
melaksanakan pertanyaan, mengembalikan hasil sebagai tatasusunan yang disimpan dalam records_array
.records_array
.Kaedah ini menawarkan kawalan yang lebih terperinci ke atas interaksi pangkalan data, yang berpotensi menghasilkan pelaksanaan pertanyaan yang lebih pantas dan prestasi aplikasi yang lebih baik.
Atas ialah kandungan terperinci Bilakah Saya Harus Menggunakan SQL Mentah untuk Prestasi Lebih Baik dalam Aplikasi Rails Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!