10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 41.5 mb
PDF (A4)- 41.6 mb
手册页(TGZ)- 262.1 kb
手册页(邮政编码)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

8.2.1优化SELECT语句

的形式的查询选择语句,执行数据库中的所有查找操作。调优这些语句是重中之重,无论是实现动态网页的次秒级响应时间,还是减少生成大量夜间报表的时间。

除了选择语句,查询的调优技术也适用于诸如创建表……作为选择插入…选择,在哪里条款删除语句。这些语句有额外的性能考虑,因为它们结合了写操作和面向读的查询操作。

NDB Cluster支持一个join的下推优化,通过这个优化,一个合格的join会被完整的发送到NDB Cluster的数据节点,在那里它可以被分布到它们之间并并行执行。有关此优化的更多信息,请参见NDB下推连接的条件

优化查询的主要考虑因素有:

  • 做一个缓慢的选择……在哪里查询速度较快,首先要检查的是是否可以添加指数.控件中使用的列上设置索引在哪里子句,以加快评估、筛选和最终检索结果。为了避免浪费磁盘空间,请构造一组索引,以加快应用程序中使用的许多相关查询的速度。

    索引对于引用不同表的查询尤其重要,使用了诸如连接而且外键.你可以使用解释语句来确定使用哪些索引选择.看到第8.3.1节“MySQL如何使用索引”而且第8.8.1节,“用EXPLAIN优化查询”

  • 隔离和调优查询的任何部分,如函数调用,这需要花费过多的时间。根据查询的结构,可以对结果集中的每一行调用一次函数,甚至可以对表中的每一行调用一次函数,这会大大增加效率低下的情况。

  • 尽量减少全表扫描在您的查询中,特别是对于大表。

  • 方法使表统计信息保持最新分析表语句,以便优化器拥有构建高效执行计划所需的信息。

  • 了解每个表的存储引擎特有的调优技术、索引技术和配置参数。这两个InnoDB而且MyISAM为在查询中启用和维持高性能提供一组指导方针。有关详细信息,请参见第8.5.6节“优化InnoDB查询”而且第8.6.1节,“优化MyISAM查询”

  • 您可以优化单个查询事务InnoDB表,使用的技术第8.5.3节,“优化InnoDB只读事务”

  • 避免使用使查询难以理解的方式转换查询,特别是在优化器自动执行某些相同转换的情况下。

  • 如果性能问题不能通过基本准则之一轻松解决,请通过阅读解释计划和调整你的指标,在哪里子句、连接子句等等。(当你达到一定的专业水平时,阅读解释计划可能是每个查询的第一步。)

  • 调整MySQL用于缓存的内存区域的大小和属性。配合高效的使用InnoDB缓冲池MyISAM键缓存和MySQL查询缓存,重复查询运行得更快,因为结果是第二次和后续次从内存中检索的。

  • 即使对于使用缓存内存区域运行速度很快的查询,您仍然可以进一步优化,以便它们需要更少的缓存内存,从而使应用程序更具可伸缩性。可伸缩性意味着您的应用程序可以处理更多的同时用户、更大的请求等等,而不会有很大的性能下降。

  • 处理锁定问题,即查询的速度可能会受到同时访问表的其他会话的影响。