sql - 通过使用 VIEW 而不是 JOIN,我可以获得任何性能优势吗?

标签 sql performance join view

在我们的项目中,我们经常会在 3 个表上编写复杂的连接。我们是否通过使用 View 获得了任何性能优势,或者它们只是为了让查询编写者的生活更轻松?万一重要,我们使用 MySQL。如果因此实现了任何优势(当然除了更简单的查询),请说明。

最佳答案

一般来说,与仅运行查询相比,普通 View 不会提供太多的性能改进。然而,大多数数据库系统,包括 MySql(我相信......自从我使用它已经有一段时间了)提供某种索引或物化 View 功能。通常,此类 View 具有相当多的可行限制,但是一旦创建,后备查询的结果将缓存在物理表中(在 SQL Server 索引 View 的情况下,是 TempDB 中的表)。数据库服务器是然后负责跟踪底层查询的变化,并更新缓存的副本。按照查询普通表的顺序,针对此类索引/物化 View 的查询通常要快得多。

关于sql - 通过使用 VIEW 而不是 JOIN,我可以获得任何性能优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3177197/

相关文章:

MySQL 用空格连接列

sql - sql中的GROUP BY和ORDER BY有什么区别

sql - 相当于SQL Server中Oracle的RowID

php - SQL:不明确的列解析,无需更改 where 子句

javascript - 使用克隆和弹出来迭代数组而不是使用 for 循环有哪些缺点?

postgresql - 找不到将使用嵌套循环连接的表

php - Symfony .env 安全性

jQuery 循环遍历 TableRows/Table Cells 性能

java - 关于Java IO性能调优的问题

mysql - SQL:按不变状态间隔长度分组