MySql 查看性能

标签 mysql database performance optimization views

如果你走的是使用 View 的道路,你如何确保良好的性能?

或者最好不要一开始就使用 View ,而是将等效的 View 合并到您的选择语句中?

最佳答案

视情况而定。

这完全取决于您通过 View 查看的内容。但很可能会减少您的工作量并提供更高的性能。当 SQL 语句引用非索引 View 时,解析器和查询优化器分析 SQL 语句和 View 的来源,然后将它们解析为单个执行计划。没有针对 SQL 语句的计划和针对 View 的单独计划。

View 未编译。它是由其他表组成的虚拟表。当您创建它时,它并不驻留在您的服务器上的某个位置。构成 View 的底层查询受到查询优化器相同的性能增益或 clang 的影响。我从未测试过 View VS 其底层查询的性能,但我想性能可能会略有不同。如果数据相对静态,您可以在索引 View 上获得更好的性能。这可能是您在“编译”方面的想法。

View 的优点:

  1. 查看数据而不将数据存储到对象中。
  2. 限制表格的 View ,即可以隐藏表格中的某些列。
  3. 连接两个或多个表并将其作为一个对象显示给用户。
  4. 限制对表的访问,使任何人都不能将行插入到表中。

查看这些有用的链接:

  1. Performance of VIEW vs. SQL statement
  2. Is a view faster than a simple query?
  3. Mysql VIEWS vs. PHP query
  4. Are MySql Views Dynamic and Efficient?
  5. Materialized View vs. Tables: What are the advantages?
  6. Is querying over a view slower than executing SQL directly?
  7. A workaround for the performance problems of TEMPTABLE views
  8. <罢工> See performance gains by using indexed views in SQL Server

关于MySql 查看性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10302615/

相关文章:

performance - SIMD/SSE 新手 : simple image filtering

database - 安装 oracle db 10g 后 xampp apache 无法启动。怎么修?

mysql - 使用 Group By 从两个表中减去两列

php - 如何只通过命令行导出mysql数据库结构,但从指定的列表中导出一些特定的表数据

Java:ArrayList add() 和 remove() 性能、实现?

mysql - 在mysql中添加信息

mysql LOAD DATA INTOFILE ERROR 1064 42000 错误行 1

mysql - 在 MySQL 上更新无符号 INT 失败并出现低值

php - 导出的数据库为空

java - 使用 MongoDB Java 驱动程序的索引不会提高性能