Rumah >pangkalan data >tutorial mysql >Bagaimanakah Raw SQL Boleh Mengoptimumkan Pertanyaan Slow Rails?

Bagaimanakah Raw SQL Boleh Mengoptimumkan Pertanyaan Slow Rails?

Barbara Streisand
Barbara Streisandasal
2025-01-15 09:38:43307semak imbas

How Can Raw SQL Optimize Slow Rails Queries?

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

  • Gunakan SQL mentah dengan bijak. Pergantungan yang berlebihan boleh menjejaskan kebolehselenggaraan kod.
  • Sentiasa parameterkan pertanyaan anda untuk mengurangkan kelemahan suntikan SQL.
  • Ujian yang ketat adalah penting untuk memastikan pertanyaan SQL mentah menghasilkan keputusan yang betul.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn