Mysql:视图与循环表连接

Posted

技术标签:

【中文标题】Mysql:视图与循环表连接【英文标题】:Mysql: Views VS recurrent table joins 【发布时间】:2021-04-29 14:27:23 【问题描述】:

我有每分钟对数据库执行查询的 cron 作业。 在其中一些任务中,我需要在两个相对较大的表之间进行连接。

我想改用视图,但我担心性能

这两个表中的数据在数量上变化不大,但是我有一列(视图中不包含)每 40 秒更新一次

这是否意味着我的视图每 40 秒更新一次?

这种情况下的视图是个好主意吗?

【问题讨论】:

【参考方案1】:

视图不会按任何节奏更新,因为它们不存储任何内容。至少在 mysql 中没有。其他一些品牌的 SQL 数据库实现了物化视图,但 MySQL 没有。

查询视图与自己运行查询完全一样。它会在您查询视图时从基表中读取,并且每次查询视图时都会这样做。

所以 MySQL 中的视图更像是一个宏。

【讨论】:

【参考方案2】:

当基础表更改时,视图不会更新。视图只是针对视图进行查询时执行的查询。

使用视图时的查询性能取决于查询。您只需要检查您对视图的查询是否正确使用索引以及性能如何。

【讨论】:

以上是关于Mysql:视图与循环表连接的主要内容,如果未能解决你的问题,请参考以下文章

面试之前,MySQL表连接必须过关!——表连接的原理

MySql数据库与JDBC编程三

Mysql算法内部算法 - 嵌套循环连接算法

mysql多表查询并创建视图

Oracle中 多表连接到底有哪几种方式

mysql如何创建临时表