千家信息网

mysql中物化视图的快速刷新测试与物化视图日志分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"mysql中物化视图的快速刷新测试与物化视图日志分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年11月03日mysql中物化视图的快速刷新测试与物化视图日志分析

本篇内容介绍了"mysql中物化视图的快速刷新测试与物化视图日志分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、物化视图日志的介绍

1.1 物化视图快速刷新的原理:要先了解完全刷新的原理是先把物化视图的数据全部删除,然后再把基表的数据插入到物化视图中;但是当数据达到百万级别的数据时,如果源表更新了一条数据,完全刷新就得删除物化视图的所有数据再进行插入;

而快速刷新,会保留物化视图的数据,然后基表的所有数据的变更记录到物化视图日志中。这样如果源表数据还是百万级别,且这个时候更新了一条数据,物化视图刷新的过程中根据物化视图的日志,只要更新修改的那条特定记录,便可达到快速刷新的作用;

简单来讲,物化视图日志就是一个数据库引擎自动伟华的表,用来跟踪基表发生的变更;

1.2 物化视图的刷新方式:我们知道如果需要进行快速刷新,则需要建立物化视图日志。Oracle物化视图日志根据不同物化视图的快速刷新的需要,可以建立为ROWID或PRIMARY KEY类型的。还可以选择是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。

二、物化视图快速刷新的测试

2.1 创建一个基表

CREATE TABLE T_JOHN

(

NAME VARCHAR2(20 BYTE),

SALE VARCHAR2(20 BYTE),

)

TABLESPACE USERS

RESULT_CACHE (MODE DEFAULT)

PCTUSED 0

PCTFREE 10

INITRANS 1

MAXTRANS 255

STORAGE (

INITIAL 64K

NEXT 1M

MINEXTENTS 1

MAXEXTENTS UNLIMITED

PCTINCREASE 0

BUFFER_POOL DEFAULT

FLASH_CACHE DEFAULT

CELL_FLASH_CACHE DEFAULT

)

LOGGING

NOCOMPRESS

NOCACHE

NOPARALLEL

MONITORING;

2.2 创建物化视图MV_JOHN

CREATE MATERIALIZED VIEW MV_JOHN (NAME,SALE)

TABLESPACE USERS

PCTUSED 0

PCTFREE 10

INITRANS 2

MAXTRANS 255

STORAGE (

INITIAL 64K

NEXT 1M

MINEXTENTS 1

MAXEXTENTS UNLIMITED

PCTINCREASE 0

BUFFER_POOL DEFAULT

FLASH_CACHE DEFAULT

CELL_FLASH_CACHE DEFAULT

)

NOCACHE

LOGGING

NOCOMPRESS

NOPARALLEL

BUILD IMMEDIATE

USING INDEX

TABLESPACE USERS

PCTFREE 10

INITRANS 2

MAXTRANS 255

STORAGE (

INITIAL 64K

NEXT 1M

MINEXTENTS 1

MAXEXTENTS UNLIMITED

PCTINCREASE 0

BUFFER_POOL DEFAULT

FLASH_CACHE DEFAULT

CELL_FLASH_CACHE DEFAULT

)

REFRESH FAST ON DEMAND

WITH ROWID

AS

SELECT NAME,SALE

FROM T_JOHN;

REFRESH FAST ON DEMAND:在需要要的时候,进行快速刷新;

2.3 创建物化视图日志

CREATE MATERIALIZED VIEW LOG ON T_JOHN

TABLESPACE USERS

PCTUSED 0

PCTFREE 10

INITRANS 2

MAXTRANS 255

STORAGE (

INITIAL 64K

NEXT 1M

MINEXTENTS 1

MAXEXTENTS UNLIMITED

PCTINCREASE 0

BUFFER_POOL DEFAULT

FLASH_CACHE DEFAULT

CELL_FLASH_CACHE DEFAULT

)

NOCACHE

LOGGING

NOPARALLEL

WITH ROWID

EXCLUDING NEW VALUES;

WITH ROWID:通过ROWID的方式,刷新物化视图;

2.4 以上完成后,便可以在基表上面进行数据的修改;

运行手工刷新后,可以查看物化视图的数据也更新了;

Begin

Dbms_mView.Refresh('MV_JOHN');

End;

三、物化视图管理

3.1 ORACLE提供了视图USER_MVIEW_LOGS可以查看,用户下物化视图的刷新情况

物化视图日志的名称为MLOG$_后面跟基表的名称,如果表名的长度超过20位,则只取前20位,当截短后出现名称重复时,Oracle会自动在物化视图日志名称后面加上数字作为序号。

3.2 MLOG$_T_WZQ

--这是一个primarykey的物化视图日志:

SQL> desc MLOG$_T_WZQ

Name Null? Type

------------------------------------------------- ------------

GROUP_ID VARCHAR2(10)

PARENT_GROUP_ID VARCHAR2(10)

SNAPTIME$$ DATE

DMLTYPE$$ VARCHAR2(1)

OLD_NEW$$ VARCHAR2(1)

CHANGE_VECTOR$$ RAW(255)

XID$$ NUMBER

相关解释如下:

SNAPTIME$$:用于表示刷新时间。

DMLTYPE$$:用于表示DML操作类型,I表示INSERT,D表示DELETE,U表示UPDATE。
OLD_NEW$$:用于表示这个值是新值还是旧值。N(EW)表示新值,O(LD)表示旧值,U表示UPDATE操作。

CHANGE_VECTOR$$:表示修改矢量,用来表示被修改的是哪个或哪几个字段。

当刷新完成后MLOG$_T_WZQ相应的日志也会被清除了,因为这些日志已经没有保存的必要了

"mysql中物化视图的快速刷新测试与物化视图日志分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

视图 日志 数据 名称 更新 测试 分析 内容 原理 情况 方式 时候 更多 知识 类型 级别 过程 还是 不同 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 互联网科技图片 互联网通讯科技 杭州互联网科技公司 广州善班互联网科技 小米互联网科技园设置 移动互联网科技股 本届互联网博览会上的黑科技 互联网新科技动漫ppt素材 东莞新华互联网科技学校 互联网科技公司营业执照怎么办理 伊宁互联网科技做什么的 智帮互联网科技公司最近动向 互联网科技数字货币 互联网科技快讯热点 有人说阿里系是互联网科技企业 陕西九四连强互联网科技有限公司 兰石爱特工业互联网科技分公司 山东蛋芒互联网科技有限公司 小牛互联网科技有限公司地址 美国互联网科技巨头监管 青岛互联网科技公司 互联网与未来科技 伴你行互联网科技有限公司 镁科技互联网资讯平台 哈尔滨新华互联网科技 互联网科技扶贫时间 特约风豹互联网科技为什么扣费 互联网公司属于科技吗 广州全民伙伴互联网科技有限公司
0