本文介绍如何管理物化视图。

查看物化视图定义

权限要求
需要有物化视图的SELECT权限。
语法
SHOW CREATE MATERIALIZED VIEW <mv_name>
功能说明
返回物化视图创建DDL语句详细信息。

查找物化视图

权限要求
需要有物化视图的SELECT权限。
语法
SHOW MATERIALIZED VIEWS [LIKE 'pattern']
功能说明
返回当前库里面所有具有SELECT权限的物化视图列表。如果有指定pattern,则返回pattern匹配上的所有物化视图。

修改物化视图

权限要求
需要有物化视图的ALTER权限。
语法
ALTER MATERIALIZED VIEW <mv_name>
[<ENABLE|DISABLE> QUERY REWRITE]
功能说明
<ENABLE|DISABLE> QUERY REWRITE:打开或关闭查询智能改写功能。
说明 当前暂不支持修改其它属性。

删除物化视图

权限要求
需要有物化视图的DROP权限。
语法
DROP MATERIALIZED VIEW <mv_name>
功能说明
删除物化视图。物化视图不能使用DROP TABLE来删除。

物化视图信息表

information_schema.mv_info
所有物化视图的元信息。

常用字段的解释如下表所示:

字段 描述
MV_SCHEMA 物化视图的所在库名。
MV_NAME 物化视图的名称。
MV_DEFINITION 物化视图表属性的DDL。
MV_QUERY 物化视图查询部分的SQL。
FIRST_REFRESH_TIME 如果已配置自动刷新,则表示首次刷新的时间。
NEXT_REFRESH_TIME_FUNC 如果已配置自动刷新,则表示下次刷新的时间推导函数。
OWNER 物化视图的创建者。
如果只需查看单张物化视图定义,建议使用SHOW CREATE MATERIALIZED VIEW命令。
使用示例如下:
# 统计整个实例有多少张物化视图
SELECT count(*) FROM information_schema.mv_info
information_schema.mv_auto_refresh_jobs
自动刷新任务记录。只有配置了自动刷新功能的物化视图才会出现在这张表里,最多保留1024条记录。

常用字段的解释如下表所示:

字段 描述
MV_SCHEMA 物化视图的所在库名。
MV_NAME 物化视图的名称。
SCHEDULED_START_TIME 计划启动刷新的时间。
START_TIME 实际启动刷新的时间。
END_TIME 刷新结束的时间。
STATE 刷新状态。
  • PENDING:等待触发刷新。
  • RUNNING:刷新中,如果很多物化视图同时开始刷新,状态虽然是RUNNING,但是可能在等计算资源。
  • FINISHED:刷新完成。
  • FAILED:刷新失败。刷新失败会自动重试,直到重试次数耗尽,那么会跳过这次刷新任务,等待下次刷新。
  • TIMEOUT:刷新任务进入未知状态,迟迟没有成功。
使用示例如下:
# 查看 mymv 的自动刷新记录
SELECT * FROM information_schema.mv_auto_refresh_jobs where mv_name = 'mymv'