Ikhtisar
Topik ini menjelaskan penyebab, dampak, dan solusi dari pernyataan kueri yang dijalankan untuk waktu lama di ApsaraDB RDS for MySQL.
Berikut ini menjelaskan cara menggunakan ApsaraDB RDS for MySQL untuk mengelola kueri jangka panjang.
Informasi latar belakang
Alibaba Cloud mengingatkan Anda bahwa:
- Saat melakukan operasi berisiko, seperti memodifikasi konfigurasi instance atau data, periksa kemampuan pemulihan bencana dan toleransi kesalahan instance untuk memastikan keamanan data.
- Sebelum memodifikasi konfigurasi dan data instance, termasuk namun tidak terbatas pada instance ECS dan RDS, disarankan untuk membuat snapshot atau mengaktifkan pencadangan log RDS.
- Jika Anda telah memberikan otorisasi atau mengirimkan informasi keamanan seperti akun masuk dan kata sandi di Konsol Manajemen Alibaba Cloud, segera modifikasi informasi tersebut.
Berikut ini menjelaskan cara menggunakan ApsaraDB RDS for MySQL untuk mengelola kueri jangka panjang.
None
Penyebab
Kueri dengan waktu eksekusi lama dapat terjadi karena beberapa alasan, seperti SQL injection, efisiensi eksekusi SQL yang buruk, atau Lock wait yang dipicu oleh pernyataan DDL.
None
Petunjuk: Untuk informasi lebih lanjut tentang cara menunggu metadata lock, lihat memecahkan masalah bahwa metadata lock menyebabkan operasi database gagal.
- Kueri lama disebabkan oleh pernyataan SQL yang tidak efisien.
- Kueri lama disebabkan oleh SQL injection.
- Tunggu Lock metadata tabel yang disebabkan oleh pernyataan DDL.
Secara umum, kueri jangka panjang, kecuali untuk kueri BI atau laporan, tidak memberikan manfaat signifikan bagi aplikasi dan mengonsumsi sumber daya sistem. Sebagai contoh, banyak kueri jangka panjang dapat menyebabkan masalah seperti penggunaan CPU berlebih, IOPS tinggi, dan koneksi yang melimpah, yang mengakibatkan ketidakstabilan sistem.
Masalah yang Disebabkan oleh Kueri Jangka Panjang
Secara umum, kueri dalam periode panjang, kecuali untuk kueri BI atau laporan, tidak memberikan manfaat signifikan bagi aplikasi dan cenderung mengonsumsi sumber daya sistem. Sebagai contoh, banyaknya kueri jangka panjang dapat memicu masalah seperti penggunaan CPU berlebih, IOPS tinggi, dan koneksi yang melimpah, sehingga menyebabkan ketidakstabilan sistem.
Untuk menghindari eksekusi kueri panjang, pertimbangkan langkah-langkah berikut:
Cara Menghindari Eksekusi Kueri Jangka Panjang
Untuk menghindari eksekusi kueri yang panjang, perhatikan contoh-contoh berikut.
- Terapkan perlindungan terhadap SQL injection di aplikasi Anda.
- Lakukan uji stres sebelum merilis modul fitur baru untuk menghindari beban berat pernyataan SQL dengan efisiensi eksekusi yang buruk.
- Cobalah untuk membuat dan menghapus indeks, memodifikasi skema tabel, serta memelihara tabel selama jam-jam sepi.
Cara Menangani Kueri yang Dioperasikan untuk Waktu Lama
Silakan merujuk ke memecahkan masalah bahwa metadata lock menyebabkan operasi database gagal.
Ruang lingkup aplikasi
- ApsaraDB RDS for MySQL