`

查询执行路径

阅读更多
    当希望 MySQL 能够以更高的性能进行查询时,最好的办法就是弄清楚 MySQL 是如何进行优化和查询的。一旦理解这一点,很多查询优化工作实际上就是遵循一些原则让优化器能够按照预想的合理的方式运行。
    下图显示了 MySQL 如何处理一个用户请求的过程。

    从图中可见,它的处理过程大致是这样的:
    (1)客户端发送一条查询给服务器。
    (2)服务器先检查查询缓存,如果命中,则立刻返回缓存结果,否则进入下一步。
    (3)服务端进行 SQL 解析、预处理,再由优化器生成对应的执行计划。
    (4)MySQL 根据优化器生成的执行计划,调用存储引擎的 API 来执行计划。
    (5)返回结果给客户端。
    在优化关联查询时需要强调以下几点:
    (1)确保 ON 或者 USING 子句中的列上有索引。在创建索引的时候就要考虑到关联的顺序。比如,当表 A 和表 B 用列 c 关联时,如果优化器的关联顺序是 B、A,那么就不需要在 B 表的对应列上建立索引。没有用到的索引只会带来额外的负担。一般来说,除非有其他理由,否则只需要在关联顺序中的第二个表的相应列上创建索引。
    (2)确保任何的 GROUP BY 和 ORDER BY 中的表达式只涉及到一个表中的列,这样 MySQL 才有可能使用索引来优化这个过程。
    (3)当升级 MySQL 时需要注意:关联语法、运算符优先级等其他可能会发生变化的地方。因为以前是普通关联的地方可能会变成笛卡尔积,不同类型的关联可能会生成不同的结果等。

注:摘自《高性能 MySQL》第六章 -- 查询性能优化。
  • 大小: 49.4 KB
分享到:
评论

相关推荐

    oracle执行计划解读

    Oracle 执行计划是一种查询执行路径的表示形式,它展示了 Oracle 数据库在执行查询时访问数据的路径。下面是 Oracle 执行计划的详细解读,包括执行计划的定义、访问数据的方式、执行计划层次关系、实例解说 serta ...

    基于Oracle 10g的比较执行查询成本研究.pdf

    - **目的**:通过分析不同的查询执行路径,并估算每种路径所需的资源消耗(如CPU时间、I/O操作次数等),选择出成本最低的执行方案。 - **实现**:Oracle 10g通过自动收集统计数据来支持CBO,而早期版本的Oracle...

    BLOG_【SPM】oracle如何固定执行计划.pdf

    HINT是Oracle优化器的提示,用于指导优化器选择更优的查询执行路径。通过outline技术,可以在数据库中预先存储好特定SQL的执行计划,然后在需要的时候,让优化器使用这个存储的执行计划而不是重新生成执行计划。...

    基于粒子群算法的数据库查询优化.pdf

    算法的粒子代表可能的查询执行路径,每个粒子的“位置”表示一个特定的查询执行计划,而“速度”则反映了计划的更新方向。在迭代过程中,粒子根据自身经验和全局最佳经验更新其位置,从而逐渐逼近最优解。 实验证明...

    基于蚁群算法的分布式数据库查询优化方法.pdf

    然后,利用蚁群算法的迭代过程,每只“蚂蚁”代表一种可能的查询执行路径,蚂蚁在路径上留下“信息素”,信息素的浓度反映了路径的优劣。随着算法的迭代,信息素会不断更新,最终使得通信代价最小的路径被强化,从而...

    Delphi仿真SQL Server查询分析器源代码

    这需要理解SQL Server的查询优化器是如何选择最佳的查询执行路径的,包括索引扫描、连接策略等。源代码可能会展示如何模拟这些决策过程,以及如何根据数据库统计信息评估不同执行计划的成本。 最后,查询优化是提高...

    02 为了执行SQL语句,你知道MySQL用了什么样的架构设计吗.pdf

    查询优化器的工作原理将在后续的学习中详细分析,但可以简单理解为选择一条对数据库来说开销最小、速度最快的查询执行路径。 MySQL的架构还包括其他关键组件,如缓存、存储引擎等,它们共同协作以完成SQL语句的执行...

    SQLServerExecutionPlans

    之后,查询优化器发挥作用,它根据统计信息和成本模型来决定最优的查询执行路径。最终,查询执行阶段将根据优化器选择的计划来访问数据库数据。 这本书中提到的“估算执行计划”和“实际执行计划”,是在性能调优中...

    SQL优化指导示例2.pdf

    本文的知识点涉及到了SQL查询优化、联结操作、聚合计算以及查询执行路径等方面。 首先,文档中提到了两个具体的查询示例。第一个查询示例通过多表连接查询来获取特定的业务数据,涉及到字段选择、条件过滤以及联结...

    mysql_pn_performance_queries.pdf

    上述知识点详细解释了MySQL查询性能分析与调优的各个方面,其中涉及到了查询优化器的工作原理、如何通过不同的成本模型来评估查询计划的效率,以及如何利用统计信息和优化器特性来影响查询执行路径。通过这些知识点...

    高级SQL优化教程(很不错的学习资料)

    以上内容全面介绍了高级SQL优化教程中的关键知识点,包括RBO与CBO的概念、优化模式设置、查询执行路径选择、RBO和CBO的特点以及统计信息的收集方法等。对于提高SQL查询效率、优化数据库性能具有重要的指导意义。

    查询优化:sql2000中的连接两个表的查询语句的执行路径对性能的影响比较

    总的来说,理解SQL Server 2000中的连接查询优化涉及到对查询执行计划、索引、统计信息和数据库设计的深入理解。通过合理的索引设计和查询优化,可以显著改善查询性能,提高系统整体的响应速度。在实际工作中,应...

    基于遗传算法的MYSQL数据库检索策略优化与设计.pdf

    在数据库检索策略优化中,染色体代表一个可能的查询执行路径。 4. **适应度函数**:适应度函数用于评估每个染色体(即查询执行计划)的优劣。在数据库优化中,适应度函数通常基于查询执行时间、资源消耗等指标,...

    pivotalHD hawq admin.pdf

    HAWQ使用了名为ORCA的查询优化器来规划查询执行路径。 2. **Greenplum Query Plans**: 绿色计划(Greenplum Query Plans)是HAWQ在执行查询前制定的详细计划,包括操作符的顺序、数据的存储位置和数据传输路径等。 ...

    PostgreSQL的遗传算法.pdf

    遗传查询优化的核心在于通过模拟自然选择和遗传机制来寻找最低成本的查询执行路径。在PostgreSQL中,当面临多个关系的连接操作时,例如在图1所示的R、S、T和U的关系连接,传统的查询优化器可能无法有效地找到最佳的...

    Implementing data cube efficiently

    数据库管理系统通常内置有查询优化器,可以根据数据分布、索引信息等因素自动调整查询执行路径,以最小化查询成本。此外,还可以通过手动编写更高效的SQL查询来进一步提升性能。 ##### 6. 并行处理 并行处理是指...

    面试---6. MySQL.pdf

    根据给定文件的信息,我们可以提炼出... - 执行计划选择: 选择最优的查询执行路径。 通过对这些知识点的理解和掌握,可以帮助开发者更好地设计和管理数据库系统,尤其是在面对高性能和大规模数据处理场景时尤为重要。

    oracle性能优化技巧

    - 使用数据库对象的统计信息来计算各种查询执行路径的成本,并选择最低成本的路径作为最终执行计划。 - 为了使基于成本的优化器能够正常工作,需要定期运行`ANALYZE`命令来更新对象的统计信息,确保这些信息的准确...

Global site tag (gtag.js) - Google Analytics