首批通过分布式安全可靠测评,为关键业务系统打造
弱一致性读
更新时间:2026-04-15 17:16:59
本文介绍在 OceanBase 数据库进行弱一致性读的最佳推荐。
对于批量类或者统计类等实时性要求不高的应用,为了避免对主副本的影响,可以设置弱一致性读。配置 session 级别或弱一致性读的 hint,把读操作放到备副本执行:
SELECT 查询语句添加 hint
SELECT /*+read_consistency(weak)*/ * FROM test WHERE c1=1;session 级别设置系统变量(1=FROZEN、2=WEAK、3=STRONG)
SET @@ob_read_consistency= 2;隔离级别为 Repeatable Read 和 Serializable 时支持执行弱读请求,示例如下。
obclient> SET transaction read only; Query OK, 0 rows affected (0.001 sec) obclient> SELECT /*+ read_consistency(weak)*/ * FROM t WHERE a=2; +------+------+ | ID | A | +------+------+ | NULL | 2 | +------+------+ 1 row in set (0.001 sec)注意
串行化隔离级别下,开启事务后,会保留事务快照,事务提交后快照才会回收。因此,串行化隔离级别下,需要注意及时提交事务,否则可能遇到磁盘占用变大或者读取越来越慢的问题。