Topik ini menjelaskan cara mengeksekusi hints pada instance ApsaraDB RDS for MySQL yang terhubung menggunakan titik akhir routing pembagian beban baca/tulis.
Batasan
Hints hanya dapat dieksekusi pada instance RDS yang terhubung melalui titik akhir routing pembagian beban baca/tulis. Untuk informasi lebih lanjut, lihat Apa itu pembagian beban baca/tulis?.
Penggunaan
Jika Anda menggunakan MySQL CLI untuk terhubung ke instance RDS, tambahkan opsi
-cpada hints yang ingin dieksekusi. Jika tidak, MySQL CLI akan memfilter hints tersebut.Gunakan hint
/*FORCE_MASTER*/untuk menentukan bahwa data diambil dari instance RDS utama, atau gunakan hint/*FORCE_SLAVE*/untuk menentukan bahwa data diambil dari instance RDS sekunder. Contoh:/*FORCE_MASTER*/ SELECT * from <table_name>.CatatanHints tidak tunduk pada batasan konsistensi atau transaksi, sehingga memiliki prioritas rute tertinggi. Sebelum mengeksekusi hints, evaluasi apakah hints tersebut sesuai dengan beban kerja Anda.
Hints tidak boleh berisi pernyataan untuk mengonfigurasi ulang variabel lingkungan. Misalnya, pernyataan
/*FORCE_SLAVE*/ set names utf8;tidak diperbolehkan. Jika pernyataan ini disertakan dalam hints, kesalahan mungkin terjadi pada beban kerja Anda.Jika bobot instance RDS hanya-baca diatur menjadi 0 tetapi hints digunakan untuk secara paksa meneruskan permintaan ke instance RDS hanya-baca, klien akan terputus dari instance RDS tersebut.
Gunakan perintah
/*force_node='<Instance ID>'*/untuk mengambil data dari instance RDS tertentu. Misalnya, jika Anda menentukan/*force_node='rr-bpxxxxx'*/ show processlist;, pernyataanSHOW PROCESSLISThanya dieksekusi pada instance RDS bernama rr-bpxxxxx. Jika instance RDS mengalami masalah, pesan kesalahanforce hint server node is not found, please check.akan dikembalikan.Gunakan
/*force_proxy_internal*/set force_node = '<Instance ID>';untuk selalu mengambil data dari instance RDS tertentu. Misalnya, setelah menjalankan/*force_proxy_internal*/set force_node = 'rr-bpxxxxx';, semua perintah berikutnya akan dirutekan ke instance RDS bernama rr-bpxxxxx. Jika instance RDS mengalami masalah, pesan kesalahanset force node 'rr-bpxxxxx' is not found, please check.akan dikembalikan.CatatanDalam kebanyakan kasus, kami menyarankan agar Anda tidak menggunakan sintaksis
/*force_proxy_internal*/. Sintaksis ini menentukan bahwa semua permintaan berikutnya diteruskan ke instance RDS tertentu, sehingga fitur pembagian beban baca/tulis menjadi tidak valid.