ApsaraDB RDS は、プライマリインスタンスと読み取り専用インスタンス間でバイナリログをリアルタイムに転送します。通常の状況では、読み取り専用インスタンスからの読み取りに遅延は発生しません。ただし、MySQL のレプリケーションメカニズムには根本的な制約があります。バイナリログの適用に時間がかかる場合、データ同期のレイテンシーが発生します。この制約を取り除くことはできません。同期レイテンシーを最小限に抑えるには、プライマリインスタンスと同等以上の仕様を持つ読み取り専用インスタンスを使用してください。
レイテンシーしきい値の動作
ApsaraDB RDS では、レプリケーションが遅延した場合に読み取り品質を保護するため、レイテンシーしきい値を設定できます。
-
読み取り専用インスタンスのレイテンシーがしきい値を超えた場合、ApsaraDB RDS はそのインスタンスへのリクエスト転送を停止します。
-
すべての読み取り専用インスタンスがしきい値を超えた場合、ApsaraDB RDS は、プライマリインスタンスにゼロ以外の読み取りウェイトが設定されていても、すべてのリクエストをプライマリインスタンスにルーティングします。
詳細については、「ApsaraDB RDS for MySQL 読み取り専用インスタンスの概要」をご参照ください。
プライマリインスタンスへのリアルタイム読み取りの強制
読み書き分離が有効になっている場合、/*FORCE_MASTER*/ ヒントを使用して、特定の SQL ステートメントをプライマリインスタンスに直接ルーティングできます。
/*FORCE_MASTER*/ SELECT * FROM table_name;
このヒントは、書き込み直後に最新のコミット済みデータを読み取る必要があるクエリ (レコードの挿入または更新直後の読み取りなど) に使用してください。