微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL:如何跟踪视图中的更改

如何解决MySQL:如何跟踪视图中的更改

在我的 MysqL 数据库中,我有一个由非常复杂的查询(+500 万行,118 列)构建的大量视图,它每天更改部分内容。每天,我都要查询这个视图并将其全部内容插入一个更大的表中,这个操作可能需要 3.5 到 5 个小时。

我尝试将数据分块导出到 CSV 文件,然后使用 LOAD DATA INFILE 以更快的方式加载记录,但导出阶段非常缓慢。

有没有办法检测视图中的更改并只更新更大表中的那些记录?有什么建议可以处理存储在视图中的大量记录?

谢谢

解决方法

严格来说,视图不包含任何记录。相反,它提供了基础表的视图。

你能说出底层表中哪些行发生了变化吗?这些表中是否有像这样定义的列?

changetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

如果是这样,您可能能够生成一个发散视图,其中包含与现有视图相同的列,但只有自特定时间以来发生变化的行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。