管理物化视图

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

查看物化视图定义

  • 权限要求

    • 需要有物化视图的SELECT权限。

  • 语法

    • SHOW CREATE MATERIALIZED VIEW <mv_name>
  • 功能说明

    • 返回物化视图创建DDL语句详细信息。

查找物化视图

  • 权限要求

    • 需要有物化视图的SELECT权限。

  • 语法

    • SHOW MATERIALIZED VIEWS [LIKE 'pattern']
  • 功能说明

    • 返回当前库里面所有具有SELECT权限的物化视图列表。如果有指定pattern,则返回pattern匹配上的所有物化视图。

删除物化视图

  • 权限要求

    • 需要有物化视图的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'

修改物化视图

  • 权限要求

    • 需要有物化视图的ALTER权限。

  • 语法

    • ALTER MATERIALIZED VIEW <mv_name>
      [<ENABLE|DISABLE> QUERY REWRITE]
  • 功能说明

    • <ENABLE|DISABLE> QUERY REWRITE:打开或关闭查询智能改写功能。