全部产品
Search
文档中心

ApsaraDB RDS:Eksekusi hints pada sebuah ApsaraDB RDS for MySQL instance

更新时间:Jun 25, 2025

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 -c pada 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>.

    Catatan
    • Hints 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;, pernyataan SHOW PROCESSLIST hanya dieksekusi pada instance RDS bernama rr-bpxxxxx. Jika instance RDS mengalami masalah, pesan kesalahan force 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 kesalahan set force node 'rr-bpxxxxx' is not found, please check. akan dikembalikan.

    Catatan

    Dalam 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.