首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >“MySQL” 2025年我用上物化视图功能,谁家的MySQL有这个功能?

“MySQL” 2025年我用上物化视图功能,谁家的MySQL有这个功能?

作者头像
AustinDatabases
发布2025-11-14 16:11:41
发布2025-11-14 16:11:41
810
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

MySQL上用上了物化视图,你确认吗? 不信你们自己看。

在“MySQL”上建立物化视图
在“MySQL”上建立物化视图

在“MySQL”上建立物化视图

这个的“MySQL” 物化视图,还可以定时进行refresh,

代码语言:javascript
复制
CREATE MATERIALIZED VIEW user_view
REFRESH COMPLETE 
ON DEMAND 
START WITH now() NEXT now() + INTERVAL 10 second
AS 
SELECT 
    u.username,
    COUNT(o.order_id) AS total_orders,
    SUM(p.price * o.quantity) AS total_spent
FROM 
    users u
LEFT JOIN 
    orders o ON u.user_id = o.user_id
LEFT JOIN 
    products p ON o.product_id = p.product_id
GROUP BY 
    u.user_id
ORDER BY 
    total_spent DESC
LIMIT 10;

语句建立的方式如上,创建一个物化视图,且是异步刷新,刷新的频率是10秒刷新一次。

创建的物化视图可以查询吗,当然可以查询......

查询物化视图的结果
查询物化视图的结果

查询物化视图的结果

通过MySQL的view_materialized_info 视图就可以查询到

创建物化视图
创建物化视图

创建物化视图

通过语句查看定时进行刷新的mysql view
通过语句查看定时进行刷新的mysql view

通过语句查看定时进行刷新的mysql view

8.018
8.018

8.018

写到这里有人会问,到底这是哪个MySQL版本是什么,上图显示 8.018的MySQL就有这个功能。

懵了吧,咣咣的!!!

实际上这个并不是我们开源的MySQL,而是我们使用的PolarDB for MySQL,在这个版本中已经提供了MySQL的物化视图功能,通过物化视图功能,可以直接在“mysql”上完成这个功能。

这是PolarDB FOR MYSQL在提供了IMCI功能后,他们又做出的一个新功能,MySQL物化视图。

当前这个功能比较新,目前还只能进行定时的更新或手动的更新,手动的更新的方法 PostgreSQL 比较熟悉的可能一看就明白,这不是PG的物化视图的功能给弄到 MySQL上了。

其实我也有这个看法,那么这个功能目前适合什么情况。

1 有周,月度,年度的大报表,就的在MySQL上运行的,你可以用这个功能来定时运行大SQL来把这个报表跑出来,比如在晚上,然后白天来查。

2 比如有一些复杂的非实时的需求的表,比如宽表等,也可以用这个来分担PolarDB for MySQL的数据大报表的查询压力。

和研发的同学碰了一下,明年3月份,将实现完全实时的物化视图,也就是增量实时同步,那么届时PolarDB for MySQL 距离一个可以实现报表完美解决方案的MySQL 数据库产品,又进了一步,之前的IMCI 也将被利用,如果客户需要,数据连写节点都不会使用,而是直接利用IMCI节点来完成数据的写。

好吧越来越有意思了,MySQL有了物化视图,这还是那个“单纯的” MySQL????

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档