mysql - 自动加载 View

标签 mysql sql-server

我们能否在 mysql 或 sql 中创建物化 View ,它会自动重新加载底层基表中的数据,而无需访问基表。

阐述:

我创建了 viewMasterTable View ,它是 3 个表的连接,

TableA,TableB,Table = viewMasterTable

现在,如果对基表进行了任何更改,例如更新、插入或删除,而没有触及基表,我希望用数据重新加载此 View 。

**Will this view concept will help in performance increase**

最佳答案

您可以在 SQL-Server 企业版中创建物化 View 。在 MySQL 中,您不能创建物化 View 。因此这仅适用于 SQL-Server 和非常特定的版本。

现在你不能不劳而获。如果具体化 View ,则意味着基表中使用的源列必须与基表中的数据保持同步。因此,基表上的任何更新/插入/删除都会受到影响,因为服务器现在必须写入基表并更新 View 。因此,每次写入都会有一个额外的操作要完成,这会对服务器本身造成性能损失。根据表的大小、 View 和更新频率,这可能是也可能不是小惩罚。

您可以为物化 View 建立索引,这就是它的强大之处。假设您有一个非常复杂的 View ,可以通过各种列进行过滤,物化 View 将允许您索引 View 中的字段,从而允许用户更快地进行过滤。然而,不利之处在于,对于您在物化 View 上创建的每个索引,都会产生更多的写入惩罚,因为服务器需要在更新 View 时更新索引。

因此,虽然它可能是提高复杂查询读取性能的好方法,但您会看到写入性能下降。这个处罚会有多严重?那么这取决于您如何安排磁盘 IO 路径,例如将索引、 View 和表放在单独的物理轴上将有助于减轻一些写入开销。

关于mysql - 自动加载 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27950678/

相关文章:

sql - 多对多表设计问题

sql - 数据库表设计-邮件类型的不同状态

sql - 从sql server获取windows用户登录名

php - 创建 PHP 对象时重用数据库连接

php - 制作PHP照片库的有效方法

Python/MariaDB : Converting . csv 数据到数据框并导出到数据库

php - 有关将用户登录( session )添加到我的网站的好信息

sql-server - 无法通过 SSIS 连接到 Excel

c# - 使您的应用程序像 SQL Server 实例一样可被 DHCP 识别

mysql - postfix mail.warn 日志中的奇怪错误