Rumah >pangkalan data >tutorial mysql >Bagaimanakah Raw SQL Boleh Mengoptimumkan Pertanyaan Slow Rails?
Meningkatkan Prestasi Rel: Memanfaatkan SQL Mentah untuk Pengoptimuman Pertanyaan
Pertanyaan perlahan boleh memberi kesan ketara kepada prestasi aplikasi Rails anda. Satu pendekatan untuk menyelesaikan masalah ini ialah menggunakan SQL mentah untuk mengoptimumkan interaksi pangkalan data anda.
Berpindah daripada ActiveRecord ke SQL Mentah
Kod contoh menggunakan ActiveRecord untuk menyertai dan memesan data daripada dua jadual. Kami boleh meningkatkan ini dengan menggunakan SQL mentah secara langsung melalui ActiveRecord::Base.connection.execute
. Berikut ialah SQL yang dioptimumkan:
<code class="language-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 payment_details.created_at DESC, payment_errors.created_at DESC;" records_array = ActiveRecord::Base.connection.execute(sql)</code>
Hasil pertanyaan disimpan dalam records_array
, membolehkan lelaran mudah dan akses kepada rekod individu.
Prestasi Dipertingkat, Terutamanya pada Heroku
Menggunakan SQL mentah selalunya menghasilkan peningkatan prestasi yang ketara, terutamanya pada platform seperti Heroku di mana tamat masa permintaan menjadi kebimbangan umum. Ini kerana SQL mentah memintas lapisan ActiveRecord ORM, mengurangkan overhed pemprosesan.
Amalan Terbaik untuk Penggunaan SQL Mentah
Atas ialah kandungan terperinci Bagaimanakah Raw SQL Boleh Mengoptimumkan Pertanyaan Slow Rails?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!