`

查询执行路径

阅读更多
    当希望 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
分享到:
评论

相关推荐

    linux系统中查询执行文件运行时依赖哪些库文件及其路径脚本ldd.sh

    linux系统 arm版本查询执行文件运行时依赖哪些库文件及其路径,在运行执行文件出错和移植第三方库的时候比较有用

    最短路径(数据结构作业-南京地图)

    包含完整工程文件和可执行文件 ">该最短路径算法主要以南京市的道路交通为模板(具体见附录图1) 简单实现任意两个地点之间最短路径查询(例如三牌楼 新街口) 该最短路径剔除了那些由于某些原因堵塞不通的路径 ...

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

    NULL 博文链接:https://dolphin-ygj.iteye.com/blog/517388

    中联HIS系统临床路径操作手册(医生站操作).doc

    路径导入功能是指将病人的诊断、病情、性别、年龄、科室等信息导入临床路径应用中,以便生成路径项目和执行路径操作。路径导入功能包括判断病人是否满足导入条件、生成路径项目、执行项目、评估阶段项目、结束路径等...

    ORACLE-Select语句执行顺序及如何提高Oracle基本查询效率.pdf

    共享池机制可以将执行过的SQL语句存放在内存的共享池中,以便下次执行同样的语句时可以快速获得已经被解析的语句和最好的执行路径。 在了解了SQL语句的执行顺序和Oracle共享原理后,我们可以知道SQL语句的书写方式...

    Vba开发地图最佳路径查找和分析

    该源代码没有使用其他控件,完全VB代码,执行效率高,查找路径速度快,比较智能。 源代码可以自定义障碍物数目以及是否显示初次优选路线方案,以及显示出地图矩形区域。这个源代码用来开发地图定位以及公交查询...

    输出并分析gbase8s查询计划.docx

    查询计划的输出内容可以帮助用户更好地理解 SQL 语句的执行过程,优化 SQL 语句的执行效率, troubleshoot 查询问题。 例如,以下是一个查询计划的输出内容: QUERY: (OPTIMIZATION TIMESTAMP: 08-04-2015 03:03:...

    ORACLE数据库查看执行计划的方法

    执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。1:在PL/SQL下按F5查看执行计划。第三方工具toad等。很多人以为PL/SQL的执行计划只能看到基数、优化器、耗费等基本信息,其实这个可以在PL/SQL工具里面...

    zuiduanlujing.rar_城市选择_最短路径_铁路

    最短路径实现全国铁路查询,选择起始城市,系统执行路径选择

    程序员面试刷题的书哪个好-mysqlsplit:mysql分库分表,分布式事务

    Mysql查询执行路径 什么限制了Mysql的性能 最常见的两个瓶颈: 1)CPU 当数据存储全部存储在内存中,CPU会成为瓶颈 2)IO资源 一般发生在工作所需的数据远远超过有效内存容量的时候 硬件性能的优化 1)低...

    SQL Server数据库查询速度慢原因及优化方法

    例如耽搁查询 的排序、连接、扫描和GROUP BY字句同时执行,SQL SERVER根据系统的负载情况决定最优的并行等级,复杂的需要消耗大量的CPU的查询最适合并行处理。但是更新操作UPDATE,INSERT, DELETE还不能并行处理。 ...

    使用hint强制基于规则的查询优化

    Oracle从9i开始默认的优化规则设置为choose,这时,如果对关键数据表的analyze数据不准确或者数据不存在,则可能导致oracle选择错误的执行路径,导致执行效率低下.笔者所参与的系统中,曾碰到在几个数百万条记录的表进行...

    ORACLE执行计划和SQL调优.pptx

    execute plan 中包括了访问路径、表扫描顺序、索引使用情况、连接顺序等信息。执行计划的优化是提高数据库性能的关键一步。 Rowid 的概念 Rowid 是一个伪列,既不是用户定义的列,也不是表中物理存储的列。但是,...

    数据库系统概论-第九章关系查询处理和查询优化.ppt

    关系查询处理步骤可以分为四个阶段:查询分析、查询检查、查询优化和查询执行。查询分析阶段对查询语句进行扫描、词法分析和语法分析,识别出语言符号,并进行语法检查和语法分析。查询检查阶段根据数据字典对合法的...

    查询相关配置需要执行的脚本.sql

    oracle配置查询语句,查询用户及对应的表空间名称。查看数据文件路径,查询系统中表空间使用空间,查询当前数据库的数据库字符集和国家字符集

    个人整理,oracle访问路径(全表扫描、回表、索引范围扫描等等)

    Oracle 访问路径是数据库查询优化的重要概念,它指的是 Oracle 数据库在执行查询时采用的路径或方式来访问数据。了解 Oracle 访问路径可以帮助开发者写出高效的 SQL 语句,提高数据库性能。 一、全表扫描(Full ...

    Linux中如何查询运行文件的全路径的方法

    主要介绍了Linux中如何查询运行文件的全路径的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    ORACLE执行计划和SQL调优.ppt

    执行计划是指数据库管理系统在执行SQL语句时,选择的访问路径和执行顺序。SQL调优是指对数据库管理系统的执行计划进行优化,以提高数据库管理系统的执行效率。 背景知识: 1. Rowid的概念:Rowid是一个伪列,系统...

    sql server的原理及应用.pdf

    优化器会考虑多种因素,如表的大小、索引的存在与否、数据的分布等,以选择最优的执行路径。 2.查询执行:查询处理引擎根据查询计划和索引等信息,在存储引擎中读取和处理数据。存储引擎是SQL Server的核心组件之一...

Global site tag (gtag.js) - Google Analytics