Topik ini menjelaskan cara mengatasi masalah yang menyebabkan pernyataan SQL lambat pada instans ApsaraDB RDS for MySQL. Jika skenario bisnis Anda tetap tidak berubah, desain arsitektur dan indeks mempengaruhi kinerja kueri instans RDS Anda. Desain yang sesuai meningkatkan kinerja kueri, sedangkan desain yang tidak sesuai dapat menyebabkan beberapa pernyataan SQL dieksekusi dengan kecepatan rendah.
Mengatasi pernyataan SQL lambat yang disebabkan oleh pengecualian SQL
Penyebab dan Gejala
Pengecualian SQL dapat terjadi karena berbagai masalah seperti desain skema yang tidak sesuai, indeks yang hilang, atau jumlah baris yang terlalu besar untuk dipindai.
Anda dapat masuk ke konsol ApsaraDB RDS dan memilih SQL Explorer and Audit di panel navigasi sebelah kiri. Di sana, Anda dapat melihat informasi tentang pernyataan SQL yang telah dieksekusi, termasuk waktu eksekusi setiap pernyataan SQL lambat dan jumlah eksekusinya.
Solusi
Optimalkan pernyataan SQL berdasarkan skenario bisnis Anda. Untuk informasi lebih lanjut, lihat Optimisasi SQL.
Mengatasi pernyataan SQL lambat yang disebabkan oleh batasan instans
Penyebab dan Gejala
Dalam banyak kasus, instans RDS mencapai kinerja maksimumnya karena alasan berikut:
Beban kerja terus bertambah, namun kapasitas penyimpanan tidak diskalakan.
Host fisik tempat instans RDS berada semakin tua, menurunkan kinerjanya.
Jumlah data terus bertambah dan struktur data berubah, sehingga kecepatan ApsaraDB RDS dalam mengeksekusi beberapa pernyataan SQL menjadi rendah.
Anda dapat masuk ke konsol ApsaraDB RDS dan memilih Monitoring and Alerts di panel navigasi sebelah kiri. Pada tab Standard Monitoring, klik Resource Monitoring untuk melihat penggunaan sumber daya instans RDS Anda. Jika semua metrik penggunaan sumber daya mendekati 100%, instans RDS Anda telah mencapai kinerja maksimumnya.
Solusi
Gunakan SysBench untuk menilai kinerja maksimum instans RDS Anda. Dalam banyak kasus, permintaan per detik (QPS) dan transaksi per detik (TPS) tidak melebihi kinerja maksimum meskipun Anda menjalankan kueri kompleks. Untuk informasi lebih lanjut, lihat Panduan Pengujian.
Jika instans RDS Anda telah mencapai kinerja maksimumnya, kami merekomendasikan peningkatan instans. Untuk informasi lebih lanjut, lihat Mengubah Spesifikasi Instans.
Mengatasi pernyataan SQL lambat yang disebabkan oleh pembaruan versi
Penyebab dan Gejala
Ketika Anda memperbarui instans RDS, rencana kueri untuk pernyataan SQL mungkin berubah. Jenis join yang didukung oleh rencana kueri diurutkan berdasarkan efisiensi secara menurun: system, const, eq_ref, ref, fulltext, ref_or_null, index_merge, unique_subquery, index_subquery, range, index, dan all. Untuk informasi lebih lanjut, lihat dokumentasi resmi MySQL.
Jika aplikasi Anda sering mengirim ulang permintaan kueri yang menentukan join range dan index tetapi ApsaraDB RDS memproses permintaan tersebut dengan kecepatan rendah, sejumlah pernyataan SQL diparalelkan. Hal ini menyebabkan thread dilepaskan dengan kecepatan rendah, menghabiskan koneksi dalam kumpulan koneksi dan memengaruhi beban kerja instans RDS Anda.
Anda dapat masuk ke konsol ApsaraDB RDS dan memilih Monitoring and Alerts di panel navigasi sebelah kiri. Pada tab Standard Monitoring, klik Resource Monitoring untuk melihat koneksi ke instans RDS Anda.
Solusi
Analisis penggunaan indeks dan jumlah baris yang perlu dipindai berdasarkan rencana kueri yang ditentukan. Perkirakan efisiensi kueri, bangun ulang pernyataan SQL, dan sesuaikan indeks berdasarkan hasil analisis untuk meningkatkan efisiensi kueri. Untuk informasi lebih lanjut, lihat Optimisasi SQL.
Mengatasi pernyataan SQL lambat yang disebabkan oleh pengaturan parameter yang tidak sesuai
Penyebab dan Gejala
Jika pengaturan parameter innodb_buffer_pool_instances dan join_buffer_size tidak optimal, ApsaraDB RDS akan mengeksekusi pernyataan SQL dengan kecepatan yang lebih rendah.
Anda dapat masuk ke konsol ApsaraDB RDS dan memilih Parameters di panel navigasi sebelah kiri. Pada tab Edit History, Anda dapat melihat riwayat rekonfigurasi parameter ini.
Solusi
Rekonfigurasikan parameter ini berdasarkan skenario bisnis Anda.
Mengatasi pernyataan SQL lambat yang disebabkan oleh kedaluwarsa entri cache
Penyebab dan Gejala
Cache sistem dapat menangani sejumlah besar kueri, namun Alibaba Cloud tidak menjamin rasio hit cache sebesar 100%. Jika entri cache kedaluwarsa, sejumlah besar kueri dialihkan ke instans RDS Anda, menurunkan kinerja kueri.
Anda dapat masuk ke konsol ApsaraDB RDS dan memilih Monitoring and Alerts di panel navigasi sebelah kiri. Pada tab Standard Monitoring, klik Resource Monitoring untuk melihat rasio hit cache, QPS, dan TPS instans RDS Anda.
Solusi
Gunakan fitur kolam thread, cache kueri cepat, dan pembatasan SQL otomatis untuk meningkatkan kinerja kueri instans RDS Anda. Untuk informasi lebih lanjut, lihat Kolam Thread, Cache Kueri Cepat, dan Pembatasan SQL Otomatis.
Mengatasi pernyataan SQL lambat yang disebabkan oleh operasi batch
Penyebab dan Gejala
Jika sejumlah besar operasi dilakukan untuk mengimpor, menghapus, dan menanyakan data, ApsaraDB RDS mengeksekusi pernyataan SQL dengan kecepatan rendah.
Identifikasi pernyataan SQL lambat berdasarkan penggunaan disk, log SQL, atau statistik kueri lambat. Misalnya, periksa ukuran setiap file log biner. Dalam kondisi normal, ukuran per file log biner adalah 500 MB. Jika ukuran file log biner melebihi 500 MB, periksa apakah ada pengecualian yang terjadi.
Anda dapat masuk ke konsol ApsaraDB RDS dan memilih Monitoring and Alerts di panel navigasi sebelah kiri. Pada tab Standard Monitoring, klik Resource Monitoring untuk melihat penggunaan disk dan operasi input/output per detik (IOPS) instans RDS Anda. Di tab ini, Anda juga dapat mengklik Engine Monitoring untuk melihat TPS instans RDS Anda.

Solusi
Lakukan operasi batch selama jam-jam sepi. Jika tidak, bagi setiap operasi batch menjadi beberapa permintaan dan ajukan permintaan ini secara terpisah.
Mengatasi pernyataan SQL lambat yang disebabkan oleh transaksi yang tidak ditutup
Penyebab dan Gejala
Jika tugas tiba-tiba melambat, tetapi utilisasi CPU dan penggunaan IOPS normal serta jumlah sesi aktif terus bertambah, beberapa transaksi belum ditutup.
Solusi
Periksa kunci yang menyebabkan konflik antar transaksi. Kemudian, hentikan pernyataan SQL yang termasuk dalam transaksi tersebut.
Mengatasi pernyataan SQL lambat yang disebabkan oleh tugas terjadwal
Penyebab dan Gejala
Jika beban pada instans RDS Anda berubah secara teratur dari waktu ke waktu, kemungkinan tugas terjadwal telah dikonfigurasi.
CatatanAnda dapat melihat informasi pemantauan pada tab Standard Monitoring halaman Monitoring and Alerts.
Solusi
Sesuaikan waktu pelaksanaan tugas terjadwal. Kami merekomendasikan agar Anda menjalankan tugas terjadwal selama jam-jam sepi.
Ringkasan
Gunakan fitur yang direkomendasikan untuk mengatasi masalah yang menyebabkan pernyataan SQL lambat. Untuk informasi lebih lanjut, lihat topik-topik berikut: