本記事では、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)