mysql中的物化视图

zaqlnxep  于 2023-01-29  发布在  Mysql
关注(0)|答案(3)|浏览(177)

如何在mysql中创建物化视图?我无法像在MS SQL Server中那样创建物化视图。
谁能告诉我用mysql创建它的方法。

r1zk6ea1

r1zk6ea11#

以下是我迄今为止取得的成功:
1.使用触发器-您可以在构建视图的源表上设置触发器。这可以最大限度地减少资源使用,因为刷新仅在需要时进行。此外,实体化视图中的数据是实时的
1.对存储过程或SQL脚本使用cron作业-刷新是定期进行的。您可以更好地控制资源何时被使用。显然,您的数据只有在刷新率允许的情况下才是最新的。
1.使用MySQL计划事件-类似于2,但在数据库内部运行

  1. Flexviews -使用Justin提到的FlexDC。最接近真实的物化视图的东西
    我在文章Creating MySQL materialized views中收集并分析了这些方法及其优缺点
    我期待着关于在MySQL中创建物化视图的其他方法的反馈或建议
wfveoks0

wfveoks02#

你可以创建一个不可更新的动态视图--如果你在底层表中有(索引的)时间戳,你可以添加一个快照,类似于:

CREATE VIEW almost_materialzd
AS
SELECT snp.*
FROM snapshot snp
WHERE s.id NOT IN (SELECT id
  FROM source_data sd
  INNER JOIN ref_data rd
  ON rd.value='snapshot of source_data'
  AND sd.update_timestamp>rd.timetamp)
UNION
SELECT *
FROM source_data sd2
INNER JOIN ref_data rd2
ON rd2.value='snapshot of source_data'
AND sd2.update_timestamp>rd2.timetamp);

但更好的解决方案是向基础表添加一个或多个触发器,以便在基础表发生更改时重新填充表示示例化视图的表中的相关行。

wkyowqbh

wkyowqbh3#

www.LeapDB.com提供了MySQL物化视图,语法正确,是MySQL的一个扩展。

相关问题