52
社区成员
发帖
与我相关
我的任务
分享PolarDB提供了三种一致性级别:最终一致性、会话一致性和全局一致性,满足您在不同场景下对一致性级别的要求。
MySQL的读写分离代理功能,代理会伪造成MySQL与应用程序建立好连接,解析发送进来的每一条SQL,如果是UPDATE、DELETE、INSERT、CREATE等写操作则直接发往主库,如果是SELECT则发送到备库,从而实现了读写分离。但是当数据库负载很高时,例如对大表执行DDL(如加字段)操作或大批量插入数据的时候,延迟会非常严重,从而导致无法从只读节点中读取最新数据。MySQL的读写分离代理功能无法解决由于延迟导致的查询不一致问题。
PolarDB采用了异步物理复制方式实现了主节点和只读节点间的数据同步。主节点的数据更新后,相关的更新会应用到只读节点,具体的延迟时间与写入压力有关(一般在毫秒级别),通过异步复制的方式确保了主节点和只读节点间数据的最终一致。PolarDB提供了如下三种一致性级别,满足您在不同场景下对一致性级别的要求:
说明 如何修改一致性级别,请参见配置数据库代理。
INSERT INTO t1(id, price) VALUES(111, 96);
UPDATE t1 SET price = 100 WHERE id=111;
SELECT price FROM t1;
若需要减轻主节点压力,让尽量多的读请求路由到只读节点,您可以选择最终一致性。
····