O ApsaraDB RDS transmite binary logs entre as instâncias primária e somente leitura em tempo real. Em condições normais, as leituras em uma instância somente leitura não apresentam latência. No entanto, o mecanismo de replicação do MySQL possui uma restrição fundamental: se a aplicação dos binary logs demorar muito, ocorre latência na sincronização de dados. Essa limitação é inerente ao sistema e não pode ser removida. Para minimizar a latência de sincronização, utilize uma instância somente leitura cujas especificações sejam iguais ou superiores às da instância primária.
Funcionamento do limiar de latência
O ApsaraDB RDS permite que você defina um latency threshold para proteger a qualidade da leitura quando a replicação apresentar atrasos:
Caso a latência de uma instância somente leitura ultrapasse o limiar, o ApsaraDB RDS interrompe o encaminhamento de solicitações para essa instância.
Se todas as instâncias somente leitura excederem o limiar, o ApsaraDB RDS direcionará todas as solicitações para a instância primária, mesmo que ela esteja configurada com um peso de leitura diferente de zero.
Para mais informações, consulte Overview of read-only ApsaraDB RDS for MySQL instances.
Forçar leituras em tempo real na instância primária
Quando o recurso read/write splitting estiver ativado, utilize a dica /*FORCE_MASTER*/ para rotear uma instrução SQL específica diretamente para a instância primária:
/*FORCE_MASTER*/ SELECT * FROM table_name;
Essa dica é indicada para consultas que exigem a leitura imediata dos dados confirmados mais recentes após uma operação de escrita — por exemplo, ao ler um registro logo após sua inserção ou atualização.