Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Beberapa kueri VS Stored Procedure

Rekomendasi apa pun sebagian bergantung pada tempat skrip yang menjalankan kueri berada. Jika skrip yang mengeksekusi kueri berada di server yang sama dengan instans MySQL, Anda tidak akan melihat banyak perbedaan, tetapi masih akan ada sedikit overhead dalam mengeksekusi 200 ribu kueri dibandingkan dengan 1 prosedur tersimpan.

Saran saya adalah menjadikannya sebagai prosedur tersimpan. Anda mungkin memerlukan beberapa prosedur.

  1. Prosedur yang menggabungkan 10 pernyataan yang Anda lakukan per operasi menjadi 1 panggilan
  2. Prosedur yang dapat mengulangi tabel argumen menggunakan CURSOR untuk dimasukkan ke dalam prosedur 1

Proses Anda akan menjadi

  1. Mengisi tabel dengan argumen yang akan dimasukkan ke dalam prosedur 1 dengan prosedur 2
  2. Jalankan prosedur 2

Ini akan menghasilkan manfaat kinerja karena tidak perlu terhubung ke server MySQL 20000*10 kali. Meskipun overhead per permintaan mungkin kecil, milidetik bertambah. Meskipun penghematannya 0,1 md per permintaan, itu masih menghemat 20 detik.

Opsi lainnya adalah dengan memodifikasi permintaan Anda untuk melakukan semua 20k operasi data sekaligus (jika memungkinkan) dengan menyesuaikan 10 kueri Anda untuk menarik data dari tabel database yang disebutkan di atas. Kunci dari semua ini adalah mendapatkan argumen yang dimuat dalam satu sisipan batch, dan kemudian menggunakan pernyataan di server MySQL dalam prosedur untuk memprosesnya tanpa bolak-balik lebih lanjut.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menjalankan perintah mysql dari terminal pada instalasi MAMP?

  2. Apakah ada cara untuk mengabaikan kolom yang tidak ada di INSERT?

  3. Masalah dengan heredoc dan PHP

  4. Pivot dinamis MySQL

  5. Mensimulasikan MySQL ORDER BY FIELD() di Postgresql