当前位置: 首页 > 面试题库 >

MySql查看性能

宋建本
2023-03-14
问题内容

已关闭 。这个问题需要更加集中。它当前不接受答案。

想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。

4年前关闭。

如果您打算使用视图,那么如何确保良好的性能?

还是最好不要先使用视图,而只是将等效视图合并到您的select语句中?


问题答案:

这完全取决于您通过视图查看的内容。但最有可能减少您的精力并提供更高的性能。当SQL语句引用非索引视图时,解析器和查询优化器将分析SQL语句和视图的源,然后将它们解析为一个执行计划。SQL语句没有一个计划,而视图则没有一个单独的计划。

视图未编译
。它是由其他表组成的虚拟表。创建它时,它不会驻留在服务器上的某个位置。组成该视图的基础查询要获得与查询优化器相同的性能提升或改进。我从未在视图VS底层查询上测试过性能,但是我想性能可能会略有不同。如果数据是相对静态的,则可以在索引视图上获得更好的性能。这可能就是您在“编译”方面的想法。

视图的优点:

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

请参阅以下有用链接:

  1. VIEW与SQL语句的性能
  2. 视图比简单查询快吗?
  3. Mysql VIEWs与PHP查询
  4. MySql视图动态且高效吗?
  5. 物化视图与表格:有哪些优点?
  6. 通过视图查询是否比直接执行SQL慢?
  7. TEMPTABLE视图性能问题的解决方法
  8. 通过在SQL Server中使用索引视图来查看性能提升


 类似资料:
  • 索引创建完成后,可以利用 SQL 语句查看已经存在的索引。在 MySQL 中,可以使用 SHOW INDEX 语句查看表中创建的索引。 查看索引的语法格式如下: SHOW INDEX FROM <表名> [ FROM <数据库名>] 语法说明如下: <表名>:指定需要查看索引的数据表名。 <数据库名>:指定需要查看索引的数据表所在的数据库,可省略。比如,SHOW INDEX FROM studen

  • 主要内容:查看视图的字段信息,查看视图的详细信息,拓展阅读创建好视图后,可以通过查看视图的语句来查看视图的字段信息以及详细信息。本节主要讲解如何使用 SQL 语句来查看视图的字段信息以及详细信息。 查看视图的字段信息 查看视图的字段信息与查看数据表的字段信息一样,都是使用 DESCRIBE 关键字来查看的。具体语法如下: DESCRIBE 视图名; 或简写成: DESC 视图名; 示例 1 下面创建学生信息表 studentinfo 的一个视图,用于查询

  • 主要内容:SHOW TRIGGERS语句查看触发器信息,在triggers表中查看触发器信息查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。MySQL 中查看触发器的方法包括 SHOW TRIGGERS 语句和查询 information_schema 数据库下的 triggers 数据表等。本节将详细介绍这两种查看触发器的方法。 SHOW TRIGGERS语句查看触发器信息 在 MySQL 中,可以通过 SHOW TRIGGERS 语句来查看触发器的基本信息,语法格

  • 主要内容:DESCRIBE:以表格的形式展示表结构,SHOW CREATE TABLE:以SQL语句的形式展示表结构创建完数据表之后,经常需要查看表结构(表信息)。在 MySQL 中,可以使用 DESCRIBE 和 SHOW CREATE TABLE 命令来查看数据表的结构。 DESCRIBE:以表格的形式展示表结构 DESCRIBE/DESC 语句会以表格的形式来展示表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等,语法格式如下: DESCRIBE <表名>; 或简写成: D

  • 数据库可以看作是一个专门存储数据对象的容器,每一个数据库都有唯一的名称,并且数据库的名称都是有实际意义的,这样就可以清晰的看出每个数据库用来存放什么数据。在 MySQL 数据库中存在系统数据库和自定义数据库,系统数据库是在安装 MySQL 后系统自带的数据库,自定义数据库是由用户定义创建的数据库。 在 MySQL 中,可使用 SHOW DATABASES 语句来查看或显示当前用户权限范围以内的数据

  • 问题内容: 我如何跟踪Linux服务器上发生的MySQL查询? 例如,我希望设置某种侦听器,然后请求一个网页并查看引擎执行的所有查询,或者仅查看在生产服务器上运行的所有查询。我怎样才能做到这一点? 问题答案: 您可以运行MySQL命令以查看在任何给定时间正在处理哪些查询,但这可能无法实现您所希望的。 获取历史记录而不必使用服务器修改每个应用程序的最佳方法可能是通过触发器。您可以设置触发器,以便每次