首批通过分布式安全可靠测评,为关键业务系统打造
创建物化视图日志
更新时间:2024-07-16 23:00:00
描述
物化视图日志(Materialized View Log,mlog)用于记录用户表(基表)的增量更新数据,以支持物化视图的快速刷新功能。mlog 是一个记录表,追踪基表的变化,并将这些变化应用于相应的物化视图,实现快速刷新。
说明
OceanBase 数据库 mlog 暂时不支持指定 Partition,mlog 的 Partition 和基表的 Partition 是绑定关系。
权限要求
创建物化视图日志需要有 CREATE TABLE 和基表的 SELECT 权限。更多有关 OceanBase 数据库权限的详细介绍,请参见 MySQL 模式下的权限分类。
语法
创建物化视图日志的 SQL 语句格式如下:
CREATE MATERIALIZED VIEW LOG ON [database.] table_name [parallel_clause] [with_clause] [mv_log_purge_clause];
有关创建物化视图日志语法的详细参数说明信息,请参见 CREATE MATERIALIZED VIEW LOG。
示例
创建表
test_tbl1。CREATE TABLE test_tbl1 (id INT, name VARCHAR(20), age INT, PRIMARY KEY(id, age)) PARTITION BY HASH(age) PARTITIONS 10;在
test_tbl1表上创建物化视图日志。指定并行处理物化视图日志的并行度为5和物化视图日志记录name和age列的变更信息,并且会记录变更前后的新值;配置物化视图日志从当前日期开始,每隔1天清理一次过期的物化视图日志记录。CREATE MATERIALIZED VIEW LOG ON test_tbl1 PARALLEL 5 WITH SEQUENCE(name) INCLUDING NEW VALUES PURGE START WITH sysdate() NEXT sysdate() + interval 1 day;查看表
test_tbl1上物化视图日志的信息。DESC mlog$_test_tbl1;返回结果如下:
+------------+-------------+------+------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+------+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(20) | YES | | NULL | | | age | int(11) | NO | PRI | NULL | | | SEQUENCE$$ | bigint | NO | PRI | NULL | | | DMLTYPE$$ | varchar(1) | YES | | NULL | | | OLD_NEW$$ | varchar(1) | YES | | NULL | | +------------+-------------+------+------+---------+-------+ 6 rows in set