Di PolarDB-X, jika waktu eksekusi pernyataan SQL pada node PolarDB-X atau instance ApsaraDB RDS for MySQL melebihi periode timeout, maka eksekusi akan mengalami timeout. Periode timeout default adalah 900 detik, dan Anda dapat menyesuaikannya sesuai kebutuhan. Untuk pernyataan SQL lambat tertentu yang durasi eksekusinya melebihi 900 detik, PolarDB-X menyediakan petunjuk timeout kustom yang memungkinkan Anda menentukan periode timeout secara manual.
Pertimbangan tambahan
PolarDB-X mendukung penyesuaian petunjuk menggunakan salah satu format berikut:
/*+TDDL:hint_command*/atau/!+TDDL:hint_command*/.Dalam klien baris perintah MySQL resmi, jika Anda menjalankan pernyataan SQL yang berisi petunjuk kustom PolarDB-X dalam format
/*+TDDL:hint_command*/, tambahkan parameter -c pada perintah untuk masuk ke klien. Jika parameter -c tidak ditambahkan, klien akan menghapus komentar MySQL dari pernyataan SQL sebelum dikirim ke server untuk dieksekusi. Petunjuk kustom PolarDB-X dengan format/*+TDDL:hint_command*/dianggap sebagai komentar MySQL. Akibatnya, petunjuk kustom PolarDB-X tersebut akan dihapus dan tidak dapat berfungsi. Untuk informasi lebih lanjut, lihat opsi klien mysql.
Sintaks
Gunakan sintaks berikut untuk menentukan petunjuk timeout kustom PolarDB-X pada pernyataan SQL:
/*+TDDL:SOCKET_TIMEOUT(time)*/Tentukan nilai SOCKET_TIMEOUT dalam milidetik. Anda dapat menggunakan petunjuk ini untuk menyesuaikan periode timeout sesuai kebutuhan bisnis Anda.
Contoh
Atur periode timeout untuk pernyataan SQL menjadi 40 detik.
/*+TDDL:SOCKET_TIMEOUT(40000)*/SELECT * FROM t_item;Periode timeout yang lebih lama dapat menyebabkan sumber daya database terpakai lebih lama. Jika banyak pernyataan SQL berjalan lama dalam periode tertentu, konsumsi sumber daya database mungkin meningkat secara signifikan. Akibatnya, PolarDB-X mungkin tidak dapat memberikan layanan database seperti yang diharapkan. Untuk mengatasi masalah ini, disarankan agar Anda mengoptimalkan pernyataan SQL yang berjalan lama.