技术分享 | MySQL 查询优化
文章转载自公众号:MySQL解决方案工程师 , 作者 徐轶韬 本文中具体内容,可以关注公众号:爱可生开源社区,观看 网络研讨会的视频 。 上周徐轶韬老师在 MySQL 团队的网络研讨会上,分享了 MySQL 查询优化相关内容,以下是相关内容整理,供各位参考。 内容分为如下几个方面: 基于成本的 MySQL 查询优化。 监视、分析和查询优化的工具有哪些? 数据访问方法与如何选择索引。 如何对连接进行优化。 如何影响优化器。接下来,简明介绍一下相关内容。 1. 基于成本的 MySQL 查询优化: MySQL 的优化器将 SQL 查询作为输入,并产生一个计划来执行该查询。 例如,应该按什么顺序连接表以及应该使用哪些索引。目标是能够从众多可能的执行计划中找到最佳的执行计划。 MySQL 使用基于成本的优化器。计划的成本大致反映了查询所需的资源,其中主要因素是计算查询时将要访问的行数。在优化过程中,优化器会选择连接顺序,决定使用哪个索引等等。同时,优化器还会根据从存储引擎获取的数据的统计信息作出决定。并且还依赖于数据字典中的元数据信息。 因此,查询优化的总体思路如上图所示。 基于成本的查询优化器将为不同的操作分配成本,如表扫描和索引查找。 成本单位是从磁盘读取随机数据页的成本。所有其他成本数字都与此成本单位有关。基于这些成本,优化器将计算可供选择的计划的成本。最终它将选择成本最低的计划。