范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

面试官你说说一条查询SQL的执行过程

  为了理解这个问题,先从Mysql的架构说起,对于Mysql来说,大致可以分为3层架构。
  第一层作为客户端和服务端的连接,连接器负责处理和客户端的连接,还有一些权限认证之类。比如客户端通用用户名密码连接到Mysql服务器,还有对于数据库表的执行权限。
  第二层是核心层,基本上Mysql大部分的核心功能都在这一层,包括查询缓存、解析器、优化器之类,比如SQL解析、优化、索引选择,到最后生成执行计划。
  第三层则是存储引擎了,Mysql通过执行引擎直接调用存储引擎API查询数据库中数据。
  通过Mysql的架构分层,我们首先就可以很清晰的了解到一个SQL的大概的执行过程。  首先客户端发送请求到服务端,建立连接。 服务端先看下查询缓存是否命中,命中就直接返回,否则继续往下执行。 接着来到解析器,进行语法分析,一些系统关键字校验,校验语法是否合规。 然后优化器进行SQL优化,比如怎么选择索引之类,然后生成执行计划。 最后执行引擎调用存储引擎API查询数据,返回结果。
  这就是一个很概括性的SQL执行过程,接下来,具体到每个步骤详细说明一下。  查询缓存
  如果你翻看Mysql的官方文档就会知道,查询缓存在5.7.20版本已经被弃用,并且8.0的版本已经删除了。为啥要删除,可能觉得太鸡肋了吧。
  我们可以通过命令来查看查询缓存是否可用。  mysql> SHOW VARIABLES LIKE "have_query_cache"; +------------------+-------+ | Variable_name    | Value | +------------------+-------+ | have_query_cache | YES   | +------------------+-------+
  除此之外,查询缓存还有一些核心参数。更具体的说明可以参考官方文档。
  query_cache_type :是否打开查询缓存,值为012,分别对应为OFFONDEMAND,ON的话则代表开启查询缓存,但是可以通过SELECT SQL_NO_CACHE 来手动禁用,DEMAND则代表只缓存以SELECT SQL_CACHE 开头的SQL语句。
  query_cache_limit :缓存结果大小限制,如果查询结果超过大小则不会被缓存,默认是1M大小。
  query_cache_size :为查询缓存分配的内存大小,他是1024的整数倍。
  query_cache_min_res_unit :查询缓存分配内存块的最小单位,默认为4KB。这是查询缓存分配内存的基本单位,即便比如查询的数据只有1个字节,也会按照最小内存单元大小来分配内存空间。
  在进行SQL解析之前,系统会判断查询缓存是否打开,如果打开,就拿缓存中的查询和传入的查询比较,如果完全一样,就会从缓存中直接返回。
  但是需要特别注意的是,无论大小写、空格还是注释,都会影响缓存的命中结果,也就是说必须完全一样!
  比如以下的SQL大小写不同、多了空格都无法命中查询缓存。  select * from user; SELECT * from user; select   * from user; 解析器&预处理器
  如果查询缓存未命中,就会进入正常的SQL执行环节。
  首先就像我们正常的业务开发一样,第一步都是对参数的规则校验,Mysql也一样,解析器会进行词法语法分析,基于语法规则对SQL进行校验。
  比如关键字是否使用正确啊,或者说关键字顺序是不是正确,比如说你把 select 写成了selct ,order by 写成了by order 。
  如果校验OK,那么就生成一颗"解析树"。
  接着预处理器就是进一步依据合法规则生成的解析树进行校验,比如表名、列名是否存在等等。  优化器
  如果说解析器和预处理器是我们业务逻辑的前置校验环节,优化器就是真正的处理业务逻辑的地方。
  一条查询SQL可以有N种执行方式,优化器的最终目标是找到最好的执行计划,交给执行引擎去执行。
  但是实际使用中我们经常会发现,Mysql经常有选择错索引的情况,我明明有更快的索引,结果它不用,导致搞出了慢查询。
  这是因为Mysql的优化器是基于成本模型的优化器,他只是基于已有的成本计算公式来选择一个成本最低的执行方式,这个执行方式不一定会是最快的,只能说大多数时候,优化器的选择比我们自己的选择更准确。
  总的来说,这个优化过程太复杂了,流程大致就是下图所示,更详细的内容可以看《数据库查询优化器的艺术原理解析与SQL性能》这本书(我实在是懒得看了,吐了)。
  执行引擎
  大部分核心的事情已经被优化器处理完了,最后执行引擎只要根据生成好的执行计划查询数据返回就好了,这一步相对就挺简单了。
  执行引擎只需要根据执行计划的指令调用存储引擎的API就可以了。
  当然这一步如果可以缓存查询结果,那么就在这个阶段把查询结果缓存下来,然后把结果返回给客户端就可以了。  总结
  一图胜千言。
  原文地址:https://mp.weixin.qq.com/s/g6IZ_vtiAIZXLTyudfLNnw

百玩不腻!谁才是三国杀里最耐玩的武将?三国杀问世至今大大小小出过的武将早已是不计其数,但大部分武将都可以用昙花一现来形容。很多武将虽然拥有不俗的能力,但由于模式的限制新将的推出,最终慢慢淡出了大家的视野。其实想必很多玩生化危机0介绍和心得生化危机0发售于2002年11月11日。讲述的是1998年7月23日,浣熊市郊区一辆正在行驶的保护伞公司的火车遭到变异水蛭的袭击,与此同时浣熊市警察局派出STARS的精英小队(布拉密室重现剧本杀测评复盘真相凶手是谁谋杀之需要复盘请私信小编,小编看到后第一时间回复您哦。故事类型推理还原硬核标准人数玩家6人DM1人测评时间45h测评分数硬核还原推理故事背景警局收到的匿名邮件现场留下的怪异符号这是一起国2021年,TOP10传奇世界手游排行金装裁决传世群英传哈咯,大家好,我是动若。年末将至,相信大家也玩不少款传世传奇手游了。那么今天动若就给大家盘点一下年度TOP10传世传奇手游吧。今天给大家带来的是一款传世元神合击版手游金装裁决传世群梦幻西游网页版平民无金版葫芦往事挑战攻略(3)继续梦幻西游网页版葫芦往事玩法平民无金版挑战攻略。十捕风捉影伙伴阵容1高伤秒三伙伴(一速先手,直接击飞两个游行小妖)单秒伙伴连击攻宠,如成周妖皇电母红孩儿北海龙女超级神狗或直接最强原神优菈惨遭深渊背刺,下版本12层魔物升级,极限物抗达120派蒙数值策划干的,我不背锅。冻梨真就不给优菈玩家活路是吧?有点狠!2。4版本深渊进行了第三次调整,表面上魔物血量与如今区别不大,实际上加了一堆的buff!不知道的还以为在打导能圆盘First首战状态神勇夺MVP枪法精湛惊艳全场CFPL2021夏季赛首轮比拼第二日第一场较量,EP和EDG本赛季的首秀准时开战。最终经过两图的比拼,EP以大比分20战胜对手EDG获得了本赛季的首场胜利。回看整场比赛,阵容再次变s24战令皮肤曝光,瑶妹星元首曝!灵鹿化蝶美哭,1688留给大乔可乐要加冰,乔妹在你心,大家好我是小乔妹,每天为您分享有趣的王者荣耀资讯,攻略等内容。S23赛季已经进行了一个多月了,这个赛季的时间比较多,很快就要迎来S24赛季了,预计在6月底会鹰眼护卫队成员滥用职权,公报私仇,大部分玩家希望撤销此功能前言在王者荣耀中,一直都有演员这一说法。也就是影响正常游戏进程的玩家,他们为了自己的私欲或者各种各样的原因影响队友,故意送人头,或者干扰队友正常游戏,导致比赛失败。在之前的版本中,迷你世界更新TO级武器鉴赏,有了收割者再也不怕野外的敌人了嗨,小伙伴大家好,小编接着来带领大家看迷你世界的1。0版本啦!在之前的文章中咱们看了一下迷你世界新出现的矿物,其实最重要的就是钛合金。这个钛合金组成了一个新系列的道具和防具。道具方剑侠世界3休闲社交,品味江湖人情鲜衣怒马仗剑行侠,酣畅淋漓家族群战,新剑问世,江湖再起波澜!灯火万千,总有一盏为你守候。若无人情温暖,怎称剑侠江湖?延续剑侠系列的经典传承,剑侠世界3将继续构建以家族为核心的大社交
s26法术装大改,帽子大幅度削弱,爆发法师削弱,大法师增强王者荣耀s25赛季还有三天时间就要结束了,想必大家趁着这几天的时间,都已经开始最后的冲分了。而在下个赛季之后,在装备方面会进行非常大的变化,就比如防御装的冰霜冲击在新赛季进行了很大外媒评选出休赛期选手变动五佳BLG。Uzi位居榜首S11冬季转会作为历届波动最猛的一次转会期,不仅有不少的知名选手选择了新的开始,还有不少退役的老将选手或者休赛的选手重新回到了职业舞台,也是在前不久,外媒针对S11冬季转会休赛期选亚运会对LPL真的很重要?理智分析,对韩国选手而言堪称救命2022年是电竞最关键的一年,电竞终于入选了亚运会的正式比赛,这意味着这一次亚运会跟上次表演赛不一样,最终拿下好成绩之后可以把奖牌记录在总奖牌数量上,而不是像上次一样连直播的机会都上分英雄哪家强,今天让我讲一讲大家好,今天我来介绍一下赛季的上大分神器。新赛季即将上线,这一个赛季即将到达尾声,对于部分玩家来说,还是没有达到自己想达到的高度。或者在即将更新的赛季想要快速脱离低分段位,拉开于混如何在我的世界中创建一个全是TNT的世界如何在我的世界中创建一个全是TNT的世界呢?接下来小编就把详细的步骤分享给大家首先第一步,打开minecraft(废话)1。点击单人游戏点击单人游戏2。点击创建新的世界3。游戏模式三星今年的电视将内置StadiaGeForceNow和NFT随着CES2022即将开始,三星今日宣布他们的2022年NeoQLED电视将内置一个新的游戏中心,支持云串流和NFT。这一批NeoQLED电视,某些型号将在2022年晚些时候推出,LPL三位昙花一现的天才!EDG娜美令人惋惜,他曾被视作UZI接班人前言作为一款火了10多年的爆款MOBA游戏,英雄联盟给我们带来了太多精彩画面,以及典型的赛事对局,当然在这10年的时间里,也涌现出无数惊才艳艳的天才选手,但是能够笑到最后或是拿下世大师兄吐槽炼金龙太强!拳头立马进行回应考虑削弱1。外媒对2022年英雄联盟电子竞技进行预测外媒DotEsports对2022年英雄联盟电子竞技进行了大预测2022年将是英雄联盟电子竞技收视率具有里程碑意义的一年。该媒体用数据指吃鸡3套新时装的入场动作!光效拉满!最后一款是仙鹿专属?务实不浮夸!我是你们的情报小能手,微笑十倍镜。吃鸡手游和平精英现阶段质量最高的时装并非红装,而是已经烂大街的粉装!这类时装与紫装唯一的区别便是拥有专属的入场动作,这也是玩家喜欢它们魔兽世界的鱼人是什么级别的文明为什么这么豪横魔兽世界中有很多的势力,仅仅是暴风城附近就存在着迪菲亚兄弟会老鼠精鱼人豺狼人等。但是迪菲亚只是地方黑帮,老鼠精和豺狼人连个房子都没有,智力水平太低,唯有鱼人不一样。论规模,有水的地大师兄吐槽炼金龙魂不应该存在!一旦拿到就是一边倒在英雄联盟的2022年季前赛版本中野区新增了两条小龙,分别是海克斯科技亚龙以及炼金科技亚龙,新增两条小龙意味着有新的地形以及新的龙魂,因此游戏的可玩性自然也随之增加。不过,炼金科技