【MySql】Sql优化(一)——Sql执行流程

news/2024/7/10 5:01:34 标签: mysql, 数据库, 优化, sql, 数据库管理

一、前言

      前一段时间,公司的DBA离职了,这可怎么办呢,临危受命当起了DBA。当然也收到了一部分数据库设计文档,数据库ER图等。但是在后面的开发中,数据库也是随着需求修改,到下面的时候,需要进行SQL优化了,对项目开发人员的SQL进行优化

sql>mysql">二、MySQL

      小编项目中用到的是Mysql

      MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

      MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

sql执行流程">三、Sql执行流程

      大家先来看一下下面这张有点AV画质的图片:

这里写图片描述

      上面的图,就是我们的Sql 执行的过程:

1. 客户端发送一条查询给服务器;

2. 服务器通过权限检查之后(用户名和密码等),先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段;

3. 服务器端进行SQL解析、预处理,再由优化器根据该SQL所涉及到的数据表的统计信息进行计算,生成对应的执行计划;

4. MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询;

5. 将结果返回给客户端。

      SQL执行的最大瓶颈在于磁盘的IO,即数据的读取;不同SQL的写法,会造成不同的执行计划的执行,而不同的执行计划在IO的上面临完全不一样的数量级,从而造成性能的差距;所以,我们说,优化SQL,其实就是让查询优化根据程序猿的计划选择匹配的执行计划,来减少查询中产生的IO;

名称介绍

【解析器】:检测SQL语法解析是否有错误,解析成为解析树(没有优化的树)

      在Hibernate中,的antlr的jar包中,专门作为语法解析的。用于识别自己定义的语言,比如HQL。

      Hibernate中有自己定的HQL(Hibernate Query Language)

       HQL(Hibernate Query Language)是Hibernate提供的一种面向对象的查询语言,HQL提供了更加丰富灵活的特性、强大的查询能力,HQL提供了更接近传统的SQL语句的查询语法。

这里写图片描述

【预处理器】

      对解析树进行预处理:常量排到什么地方;有计算的地方,把计算得到结果;

      得到更加规范的树

【查询优化器】

      最关键,任何sql,从多种查询方案中,根据sql>mysql自身的统计信息,选择一种最优的

      sql优化,就是要使得sql>mysql的查询优化器按照程序员的思路去优化

【查询执行计划】

      执行步骤,第一步干什么,第二步干什么

【查询执行引擎】

      Mysql的执行引擎是多种多样的,InnoDB,MyISM,memory,数据库用的什么引擎,就用什么引擎执行。

四、小结

      通过对这个sql执行的过程学习,更加熟练了自己对sql的使用。举一个例子,我们都知道阿里的druid解析器可以解析SQL,就是用了解析器类似的东西。


http://www.niftyadmin.cn/n/1146041.html

相关文章

百度C2C支付平台定名百付宝 上线进入倒计时

淘宝屏蔽 百度搜索之后,百度的电子商务平台也动作频频。昨天,继百度称将向淘宝商户推出绿色通道之后,还宣布推出了 C2C支付平台 “百付宝”,而其电子商务平台的上线也进入倒计时。百度电子商务事业部一位人士告诉《第一财经日报》…

【MySql】Sql优化(二)——影响性能的因素

一、前言 在上一篇博客中,小编向大家简单介绍了一下Mysql执行的流程:客户端发送一条查询给数据库服务器,服务器先进行权限检测,然后在缓存中查询,如果命中了缓存,就立即返回存储在缓存中的结果,…

传淘宝正进行人事调整 应对百度C2C项目

继淘宝屏蔽 百度爬虫向百度宣战后,交战双方都开始了紧锣密鼓的备战,以期抢占先机。昨日百度宣布,已经将其C2C(消费者与消费者之间的电子商务)支付平台定名为“百付宝”,不久百付宝将连同百度C2C平台一起推出。而淘宝也不懈怠&…

【MySql】Sql优化(三)——性能优化

一、前言 当数据库数据达到一定数量的时候,结合数据库连接池Druid的可视化监控界面,对系统中运行的sql语句进行检测,对使用频繁、执行时间长的sql语句进行优化。 二、优化方案原则 [原则一:选择需要优化的SQL] 1,选择需要优化的SQL:不是所有…

【Druid】Druid连接池(二)——配置监控界面

一、前言 在阿里的数据库连接池中,Druid是一个很好的选择。她可以实现程序员的一些特殊的需求,比如像密钥服务请求凭证,统计sql信息,sql性能收集,sql注入检测,sql翻译等。 Druid在阿里巴巴内部广泛部署&…

商刊:苹果产品发布会缺乏新意平淡收场

【赛迪网讯】北京时间9月10日《商业周刊》文章指出,乔布斯发布的最新iPod外形更美观,售价更便宜,但是却没有市场预期的创新改进。 苹果观察员对这次的产品发布会寄予了厚望。乔布斯的每一次亮相总会吸引市场的目光。 他几乎每次都能给所有人带…

【Druid】Druid连接池(三)——配置监控界面设置登录界面

一、前言 上一篇博客向大家简单介绍了Druid的配置,但是如果没有一个权限管理,只要知道Druid的相关配置的url,就可以直接访问监控平台,这个是非常不安全的。所以在这篇博客向大家介绍一下设置登录密码,来限制用户访问。…

雅虎向对手开放平台 旨在充分发挥5亿用户潜力

【搜狐IT消息】北京时间9月12日消息,据国外媒体报道,周四,雅虎宣布将进一步推进雅虎开放策略(Yahoo Open Strategy),包容来自雅虎之外的内容,也包括来自竞争对手的内容。雅虎媒体业务负责人斯科…