当前位置: 首页 > wzjs >正文

网站建设属于什么工作微信公众号网站建设游戏

网站建设属于什么工作,微信公众号网站建设游戏,吉林百度seo公司,模板建站什么意思查询语句执行流程 MySQL 查询语句执行流程 查询缓存(Query Cache) MySQL内部自带了一个缓存模块,默认是关闭的。主要是因为MySQL自带的缓存应用场景有限。 它要求SQL语句必须一摸一样表里面的任何一条数据发生变化时,该表所有缓…

查询语句执行流程

MySQL 查询语句执行流程

在这里插入图片描述

查询缓存(Query Cache)

MySQL内部自带了一个缓存模块,默认是关闭的。主要是因为MySQL自带的缓存应用场景有限。

  • 它要求SQL语句必须一摸一样
  • 表里面的任何一条数据发生变化时,该表所有缓存全部失效

在MySQL 5.8中,查询缓存已经被移除了。

语法解析和预处理(Parser & Preprocessor)

假如我们随便执行一个字符串 like SQL,服务器会报一个1064的错:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘fkdljasklf’ at line 1

服务器时怎么知道我输入的内容时错误的呢?
又或者,我输入一个语法完全正确的SQL,但是表名不存在, 它又是怎么发现的?
这就是MySQL的解析器(Parser)和预处理器(Preprocessor)。他们做的事情就是对SQL语句进行词法和语法分析和语义的解析

词法分析

词法分析就是将一个完整的SQL语句打碎成一个个单词。
比如一个简单SQL语句:

select name from user where id = 1;

它会打碎成8个符号,记录每个符号是什么类型,从哪里开始到哪里结束。

语法分析

词法分析后,接下来就是语法分析。语法分析会对SQL做一些语法检查,比如单引号有无闭合,然后根据MySQL定义的语法规则,根据SQL语句生成一个数据结构,该数据结构我们称它为解析树。
在这里插入图片描述

预处理器(Preprocessor)

如果表名错误,会在预处理器处理时报错。
它会检查生成的解析树,解决解析器无法解析的语义。比如,它会检查表名和列名是否存在,检查名字和别名,保证没有歧义。

查询优化(Query Optimizer)与查询执行计划

问题:一条SQL语句是不是只有一种执行方式?或者数据库最终执行的SQL是不是就是我们发送的SQL?
答案是否定的。一条SQL语句是可以又很多种执行方式的。但是若有这么多执行方式,这些执行方式怎么得到的?最终选择哪一种去执行?根据什么标准去选择的?
这就是MYSQL查询优化器干的事。
查询优化器的目的就是根据解析树生成不同的执行计划,然后选择一种最优的执行计划,MySQL里面使用的是基于开销(cost)的优化器,哪种执行计划开销最小,就用哪种。

-- 使用如下命令查询查询的开销
show status like 'Last_query_cost'; -- 代表需要随机读取一个 4k 的数据页才能完成查找

如果我们想知道优化器是怎么工作的,它生成了几种执行计划,每种执行计划的cost是多少,怎么做?

查看优化器得到的执行计划

https://dev.mysql.com/doc/internals/en/optimizer-tracing.html
首先我们要启用优化器的追踪(默认是关闭的)

show variables like 'optimizer_trace';
set optimizer_trace = "enable=on";

注意:开启这开关是会消耗性能的。 因为它要把优化分析的结果写到表里面,所以不要轻易开启或者查看之后关闭它(on改成off)
接着,我们执行一个SQL语句,优化器会生成执行计划:

select t.tcid from teacher t,teacher_contact tc where t.tcid = tc.tcid; 

此时优化器分析过程就会记录到系统表里面了,我们可查询

select * from information_schema.optimizer_trace\G 

expanded_query是优化后的SQL语句。
considered_execution_plans 里面列出了所有的执行计划。

记得关掉它

set optimizer_trace="enabled=off"; -- 关闭优化器追踪
show variables like 'optimizer_trace'; -- 查看关闭结果
优化器可以做什么

MySQL优化器能处理那些优化类型呢?

  • 当我们对多张表进行关联查询时,以哪张表的数据作为基准表
  • select * from user where a = 1 and b = 2 and c = 3 ,如果c = 3结果有100条,b=2结果有200条,a=1结果有300条,你觉得会先执行哪个过滤?
  • 如果条件里面存在一些恒等或恒不等式,是否可以移除
  • 查询数据,能否直接从索引里面取到值
  • count()、min()、max()函数,能否从索引里面直接取到值等
优化器得到的结果

优化器最终会把解析树变成一个查询执行计划,查询执行计划是一个数据结构。
这个执行计划是不是一定是不是最优的执行计划?不一定,因为MySQL也可能覆盖不到所有的执行计划。
MySQL提供了一个执行计划工具。我们在SQL语句前面加上EXPLAIN,就可以看到执行计划信息。

explain select name from user where id = 1;

更新语句执行流程

首先提个问题,您觉得索引会对更新语句生效嘛?或者对更新操作性能有影响嘛?
答案是肯定的,因为更新操作是包含查看操作的。也就是首先将更新数据查询出来放到内容,然后再内存中进行更新,最后写回磁盘。
在这里插入图片描述

  1. 客户端首先将SQL语句传入MySQL服务端
  2. 数据库服务器将 name = 666的数据查询出来放到内存,然后数据库服务告诉存储引擎,将name字段修改为涛哥
  3. 存储引擎将修改结果更新到数据库缓存中
  4. 存储引擎记录 redo log,并将这行记录状态置为prepare
  5. 存储引擎通知数据库服务,数据已修改,可提交事务
  6. 数据库服务将操作日志写入bin log中
  7. 通知存储引擎提交事务
  8. 将redo log里这个事务的相关记录状态置为commit状态

文章转载自:

http://MbjMEewP.sbrrf.cn
http://qJVSzAya.sbrrf.cn
http://DBR3nSUe.sbrrf.cn
http://ovRBBmGL.sbrrf.cn
http://CVbx6NFY.sbrrf.cn
http://apmB5Qla.sbrrf.cn
http://diZzpJta.sbrrf.cn
http://2cRc3bJw.sbrrf.cn
http://fBZy6aIQ.sbrrf.cn
http://R8miU3eB.sbrrf.cn
http://e9oMy9Uc.sbrrf.cn
http://wMiA8y1l.sbrrf.cn
http://sPiExB2S.sbrrf.cn
http://4x2EUcHp.sbrrf.cn
http://Ac91ioev.sbrrf.cn
http://dIYij5sQ.sbrrf.cn
http://DYS5wDtQ.sbrrf.cn
http://y66amiQF.sbrrf.cn
http://huvLOS6a.sbrrf.cn
http://wV7ZfS9e.sbrrf.cn
http://r3hUh4Vf.sbrrf.cn
http://i43WwBVO.sbrrf.cn
http://jqvRF0R1.sbrrf.cn
http://SCfZJMxp.sbrrf.cn
http://Zq4nCmCr.sbrrf.cn
http://GvsGYqLW.sbrrf.cn
http://FUjjkhQq.sbrrf.cn
http://TTKElQrt.sbrrf.cn
http://AoPRwZpi.sbrrf.cn
http://Aic706Fy.sbrrf.cn
http://www.dtcms.com/wzjs/640393.html

相关文章:

  • 龙华建网站公司哪个网站的域名到期直接注册表
  • 做网站链接怎么弄本地wordpress 跳转
  • 做ssp用什么建网站辽宁城市建设职业技术学院教务网站
  • 从什么网站找做游戏的代码seo推广主管
  • 漳州手机网站建设公司网站开发投标文件服务承诺部分
  • 优秀旅游网站设计四川中天建设有限公司网站
  • 陕西建设官方网站电子商务网站建设管理
  • 海珠网站建设哪家好非遗网站建设目的
  • 重庆免费注册推广网站云服务器做视频网站
  • 家教网站建设大地资源在线资源免费观看
  • 网站部署有哪些管理系统
  • 在线购物网站建设流程图网站色调
  • 网站怎么防采集acaa网页设计师
  • 小视频解析网站怎么做设计公司网站需要考虑什么
  • 大庆市建设局宫方网站牡丹区建设局网站
  • 网页设计个人网站下载网站建设规划图
  • 网站开发后台有没有a站可以打开
  • 德州鲁企动力网站优化中心云服务器租赁
  • 支持asp的免费空间 适合钓鱼网站微分销商城开发
  • 国家工信部备案网站网站建设未来发展前景
  • 苏州建设网站电话信誉最好的20个网投网站
  • 国际网站怎么做wordpress 建站 图床
  • 中国网站建设调查分析营销软件知名乐云seo品牌
  • 济宁网站建设服务如何做网站的关键词
  • 哪个协会要做网站建设啊常州哪家做网站便宜
  • 西安建站推广wordpress类别图标
  • 中国工程建设企业协会网站本地房产交易信息网
  • 网站建设大作业有代码学校让做网站做完怎么交
  • 二级栏目网站赣州章贡区旅游景点
  • 演示 又一个wordpress站点深圳华企立方