本記事では、OceanBaseデータベースで弱い整合性の読み取りを行う際の推奨事項について説明します。
バッチ処理や統計処理など、リアルタイム性の要求が高くないアプリケーションでは、プライマリレプリカへの影響を避けるために弱い整合性の読み取りを設定できます。セッションレベルまたは弱い整合性の読み取りのヒントを構成することで、読み取り操作をスタンバイレプリカで実行します。
SELECTクエリステートメントにヒントを追加する
SELECT /*+read_consistency(weak)*/ * FROM test WHERE c1=1;セッションレベルでシステム変数を設定する (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)