sql - 从包含数千条的 MySQL View 中查询单个记录是否相当于查询那几千条 + 1?

标签 sql mysql performance

我一直希望并假设它不是 - 集合论(或其他东西)提供了通往结果的捷径。

我创建了一个不可更新 View ,该 View 以产生指数数量的记录的方式聚合来自多个表的数据。从这个角度来看,我一次查询一条记录。由于底层数据集很小,因此该技术效果很好 - 但我担心它无法扩展。

我听说 MySQL 使用临时表来实现 View 。一想到每个查询都会出现和消失潜在的大量临时表,我的心就颤抖了。

最佳答案

使用 explain <select query>查看查询中实际发生了什么的语法。

一般来说,使用 View 等同于使用相同SQL 的子查询。没有好坏之分,只是防止一遍又一遍地编写相同子查询的捷径。

有时您最终会得到用于解析某些复杂查询的临时表,但如果数据库结构得到很好的优化并且使用 View 而不是子查询不会改变任何东西,这种情况就不会经常发生.

关于sql - 从包含数千条的 MySQL View 中查询单个记录是否相当于查询那几千条 + 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/628224/

相关文章:

php - 复合标识符,但使用 ID 生成器而不是手动分配 + Symfony2

c# - 查询 List<T> 时出现 OleDb 未处理的异常

mysql - 我该如何编写这个 MySQL 查询?

php - 如何在使用 PHP 导入 SQL 之前正确转义 CSV 文件

.net - 拥有多个 DLL 好还是单个大 DLL 好?

objective-c - 加速循环以创建长字符串

mysql - 设置从 Microsoft SQL Server Management Studio 到 MySQL Amazon Web Services MySQL RDS 的链接服务器连接?

php - 当 URL 中包含 “” 时,为什么通过 URL 从 MySQL 获取数据不起作用?

MYSQL - 按 2 列分组,按创建日期排序

CAST 性能中的 SQL VARCHAR 与 NVARCHAR