SET RW_IMPLICIT_FLUSH
RW_IMPLICIT_FLUSH
配置选项可控制批处理操作后的隐式 Flush。
句法
SET RW_IMPLICIT_FLUSH = { true | false };
用途
FLUSH
命令可提交挂起的数据更改,并强制 RisingWave 将更新后的数据保存到存储中,确保后续读取可访问最新数据。详情请参阅 FLUSH
。
但是,启用 RW_IMPLICIT_FLUSH
选项时,大多数情况下不需要显式使用 FLUSH
命令,因为数据更改在批处理操作后会被隐式 Flush 并立即可见。
行为
当
RW_IMPLICIT_FLUSH
设置为true
时,- 通过
INSERT
、UPDATE
和DELETE
进行的数据更改在批处理操作后会被隐式 Flush 并立即可见。 - RisingWave 可确保数据的一致性和可见性,这与传统数据库提供的写后读一致性的保证类似。
- 通过
当
RW_IMPLICIT_FLUSH
设置为false
(默认行为)时,- RisingWave 不保证写后读一致性,即写入可能不会立即对后续的读取可见。
- 需要在批处理操作后显式调用
FLUSH
,以立即将更改保存到存储中。
示例
-- 启用 RW_IMPLICIT_FLUSH
SET RW_IMPLICIT_FLUSH TO true;
-- 执行批处理操作
INSERT INTO users (id, name) VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');
UPDATE users SET name = 'David' WHERE id = 2;
DELETE FROM users WHERE id = 3;
-- 数据更改被隐式 Flush 并立即可见
SELECT * FROM users;