MySQL物化视图

MySQL 中,物化视图的支持是在 8.0 版本中引入的。如果你使用的是 MySQL 8.0 或更高版本,你可以使用 CREATE MATERIALIZED VIEW 语句来创建物化视图。以下是一些示例:

  • 创建物化视图myview1,每五分钟刷新一次。

    CREATE MATERIALIZED VIEW myview1
    REFRESH NEXT now() + interval 5 minute
    AS
    SELECT count(*) as cnt FROM base;
    
  • 创建物化视图myview2,每周一凌晨2点刷新。

    CREATE MATERIALIZED VIEW myview2
    REFRESH 
     START WITH DATE_FORMAT(now() + interval 7 - weekday(now()) day, '%Y-%m-%d 02:00:00') 
     NEXT DATE_FORMAT(now() + interval 7 - weekday(now()) day, '%Y-%m-%d 02:00:00')
    AS
    SELECT count(*) as cnt FROM base;
    
  • 创建物化视图myview3,每天凌晨2点刷新。

    CREATE MATERIALIZED VIEW myview3
    REFRESH 
     START WITH DATE_FORMAT(now() + interval 1 day, '%Y-%m-%d 02:00:00')
     NEXT DATE_FORMAT(now() + interval 1 day, '%Y-%m-%d 02:00:00')
    AS
    SELECT count(*) as cnt FROM base;
    
  • 创建物化视图myview4,每个月第一天凌晨2点刷新。

    CREATE MATERIALIZED VIEW myview4
    REFRESH NEXT DATE_FORMAT(last_day(now()) + interval 1 day, '%Y-%m-%d 02:00:00')
    AS
    SELECT count(*) as cnt FROM base;
    
  • 创建物化视图myview5,只刷一次。

    CREATE MATERIALIZED VIEW myview5
    REFRESH START WITH now() + interval 1 day
    AS 
    SELECT count(*) as cnt FROM base;
    
  • 创建物化视图myview6,不自动刷新,完全依靠手动刷新。

    CREATE MATERIALIZED VIEW myview6 (
      PRIMARY KEY (id)
    ) DISTRIBUTED BY HASH (id)
    AS
    SELECT id, name FROM base;
    
  • 创建物化视图myview7,指定列建立索引,默认全部列建立索引。

    CREATE MATERIALIZED VIEW myview7 (
      INDEX (name),
      PRIMARY KEY (id)
    ) DISTRIBUTED BY HASH (id)
    AS
    SELECT id, name, age FROM base;
    
  • 创建物化视图myview8,指定分区键和注释。

    CREATE MATERIALIZED VIEW myview8 (
      name varchar(10),
      value double,
      KEY INDEX_ID(id) COMMENT 'id',
      CLUSTERED KEY INDEX(name, value),
      PRIMARY KEY(id)
    ) 
    DISTRIBUTED BY hash(id)
    PARTITION BY value(date_format(dat, "%Y%m%d")) LIFECYCLE 30
    COMMENT 'MATERIALIZED VIEW c'
    AS 
    SELECT * FROM base;
    

注意事项:

在大多数数据库系统中,物化视图的刷新和查询是可以前后执行的。但是,具体的行为可能会因数据库系统的实现而有所不同。以下是一些可能的影响:

  1. 数据一致性

    • 在刷新物化视图的过程中,查询物化视图可能会返回旧的数据。这是因为刷新物化视图是一个异步操作,在刷新完成之前,查询可能会返回刷新前的数据。
  2. 性能影响

    • 刷新物化视图可能需要一些时间,这可能会影响查询的性能。在刷新过程中,如果有大量的查询操作,可能会增加数据库的负载。
  3. 事务管理

    • 如果你的应用程序使用了事务管理,那么刷新物化视图的操作应该在一个事务中执行。这样可以确保刷新操作和查询操作的一致性。
  4. 错误处理

    • 如果刷新物化视图失败,查询物化视图可能会返回错误。因此,你应该在刷新物化视图之前和之后进行错误处理。

总的来说,虽然物化视图的刷新和查询可以前后执行,但是你应该注意数据一致性和性能的影响,并确保正确的事务管理和错误处理。

内容来自于:阿里云社区产品文档

本文作者:Journey&Flower

本文链接:https://www.cnblogs.com/JourneyOfFlower/p/15742551.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Journey&Flower  阅读(23)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 Not Found REOL
404 Not Found - REOL
00:00 / 00:00
An audio error has occurred.

Fade away

Do over again

Fade away

Utai hajime no hitomojime

Itsumo mayotteru

Douse toritome no nai koto dakedo

Tsutawaranakya motto imi ga nai (Ooh-ooh, oh-oh-oh)

Doushitatte konna ni fukuzatsu nano ni

Kamikudaite yaranakya tsutawaranai

Hora kekkyoku kashi nanka dou datte ii

Boku no ongaku nanka kono yo ni nakutatte ii nda yo

Ii ndarou

Nee sou darou

Everybody don't know why

Everybody don't know much

Boku wa ki ni shinai, kimi wa kidzukanai

Doko ni mo mou inai inai

Everybody don't know why

Everybody don't know much

Wasureteiku, wasurerareteiku

We don't know, we don't know, no, no

Me no mae, hirogaru genjitsu sekai ga mata yuganda

Nando risetto shite mo

Boku wa boku igai no dareka ni wa umare kawarenai

Sonna no shitteru yo

Ki ni naru ano ko no uwasabanashi mo

Shinikaru hyouteki wa tsugi no sokuhou

Mahi shichatteru (Tteru) kokkara esukeepu (Keepu)

Tooku tooku made ikeru yo

Antei nante nai (Na-na-na-na)

Fuanteina sekai (Na-na-na-na)

Antei nante nai (Na-na-na-na)

Kitto ashita ni wa wasureru yo

Fade away

Do over again

Fade away

Souda sekai wa dokoka ga itsumo uso kusai

Kireigoto dake ja daijina hitotachi sura mamorenai

Kudaranai, bokura minna dokoka kurutteru mitai

Hontou no koto nanka zenbu kamisama mo shiranai

Kamisama mo shiranai (Woah, woah, woah, no, woah)

Kamisama mo shiranai (Woah, woah, woah, no, woah)

Kamisama mo shiranai, but

Kamisama mo shiranai (Woah, no, woah, no, woah)

Everybody don't know why

Everybody don't know much

Boku wa ki ni shinai, kimi wa kidzukanai

Doko ni mo mou inai inai

Everybody don't know why

Everybody don't know much

Wasureteiku, wasurerareteiku

We don't know, we don't know, oh, oh-oh-oh

Ahh, oh-oh-oh-oh

Woah, oh-oh-oh

Ooh, ooh, ooh, ooh-ooh-ooh-ooh