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

面试官你说说一条查询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就可以了。
  当然这一步如果可以缓存查询结果,那么就在这个阶段把查询结果缓存下来,然后把结果返回给客户端就可以了。  总结
  一图胜千言。

28亿存款担保案主角曾欠税超200万多次蹭央企光环随着对华业石化及其背后股东的挖掘,有媒体发现,华业石化这家公司虽然成立不足三年,蹭央企的黑历史却不少。借着现有股东华之业能源前股东芮盈贸易,华业石化两度穿上央企全资孙公司的外衣。2多地取暖用煤价格涨超2倍传统采暖方式会不会在农村大量出现?10月18日,内蒙甘肃等地的居民在多个网络平台反映,今年冬季取暖用煤价格上涨,有的地方煤价同比翻倍,而内蒙有些地方的煤价,最高达到去年同期价格的三倍。一位煤炭行业人士称,因为煤炭供美团饿了么声明落地政策外卖小哥有话要说针对外卖平台骑手转变为个体工商户的情况,美团饿了么发布声明称禁止以任何形式诱导或强迫新就业形态劳动者转为个体工商户规避用工主体责任行为。美团向所有合作商发送关于禁止要求骑手注册个体看安家,说说我在上海租房买房的坑与得安家,对于曾经上漂的人来说,不仅意味着从此居有定所,更让一颗漂泊的心有了暂时的依靠。这几天一直在看孙俪罗晋主演的安家。相比较原来的剧名卖房子的女人,我更喜欢安家这个剧名。安家,它符17岁登上春晚,21岁嫁外卖小哥,55岁的饶敏莉如今怎样网上冲浪多年,见惯了明星分分合合,也见证了曾经以为牢不可破的夫妻一拍两散,那么请问,屏幕前的各位是否还相信爱情?是的,还相信,虽然爱情会让人受伤,但人生不就是这样吗?爱过痛过不后悔福建莆田市林某杰被网暴林某与伊毛老太二人传播有区别请理智看待9月10日以来,福建省累计报告本土确诊病例261例。来自仙游县枫亭镇的林某杰,被认为是本轮福建疫情的疑似源头病例。8月4日林某杰从新加坡回国后,按照疫情防控要求进行了21天的隔离。广东学校挑衅双减政策强制学生校内补课称费用不到一百块而已有媒体9日报道学生举报学校强制要求补课,在目前国家重拳打击校外培训的时候。广东揭阳某学校公然挑衅双减政策组织校内集体补课,校方称此举是因为学校面临升学率的压力。试问学校你得无能是打功勋李延年对逃兵说的一段话提醒我们人活着需要信仰功勋里王雷饰演的李延年面对逃兵时,所讲的一段话让全国人民肃然起敬!你们想不想家乡的亲人,我们入朝以来一路上看见的凄惨景象。村庄被战火摧毁了到处都是百姓的尸体,还有那失去父母的孩子那功勋于敏氢弹科学家震慑了外部之敌让我们过上了国泰民安的生活看见雷佳音饰演的于敏领导与的对话深深感受到了作为科学家的精神,领导问这个项目你不能出国留学了。你现在的工作也处于停职状态,你所有以前的功绩都可能被埋没,你的家人以为你出了什么事。这国家禁止比特币挖矿行为浪费国家电能一夜暴富是否会是你9月24日,国家发改委等11部门发布关于整治虚拟货币挖矿活动的通知称,严禁新增虚拟货币挖矿项目,加快存量项目有序退出。同时,通知也将虚拟货币挖矿活动列为淘汰类产业。2020年全年纳戴维斯是否有能力单核带队湖人队105117连输两场季前赛今日湖人105117不敌太阳,季前赛遭遇两连败。数据方面太阳队,7人得分上双,布里奇斯15分5篮板,克劳德13分9篮板,艾顿14分11篮板,佩恩11分,湖人队,蒙克18分1板3助攻
于荣光版天龙八部选角受吐槽,段誉女性化太重,阿朱眼袋重像大妈由央视出品的李亚鹏版笑傲江湖至今是人们心中的经典,画面古风,武侠气息十足,尤其是选角近乎完美,李亚鹏饰演的令狐冲放荡不羁,许晴扮演的圣姑脉脉含情,李解出演的林平之阴气十足,每个角色新天龙八部女性群像王语嫣干瘪,阿朱显老,马夫人最出彩金庸的小说虽然绝大多数都是大男主作品,但他的小说里从来不乏出彩的女性角色,即便是着墨不多的配角也都个性鲜明丰富立体。最近,由于荣光执导的新版天龙八部开播,毕竟有9703版珠玉在前,赵明明主演女人不是月亮爆红,失败的婚姻让她疼痛至今点击关注,每天都有名人故事感动您!赵明明1992年,刚刚大学毕业的赵明明因主演农村剧女人不是月亮,荣获中国电视金鹰奖最佳女主角提名奖,开始在全国爆红。紧接着,她又推出了京都纪事我爱31岁谭松韵,荧幕前单纯美好,背后的故事却让人心疼人生海海一书中,有这样一句话心有雷霆面若静湖,这是生命的厚度,是沧桑堆积起来的。爱笑的人,并非快乐,只是在看透世俗后,依然愿意用笑容面对生活表面幸福的人,并非没有故事,只是在成长后童瑶难怪能翻红,走红毯不穿礼服却很惊艳,白衬衣黑西裤真飒气女明星们走红毯往往都很华丽精致,在穿搭上几乎都会优先选择带有吸睛亮点的礼服单品,从而来引起人们的关注,尤其是身材的衬托和和展现,更是女明星们用来加分的重要环节之一。然而,近几年翻红刘亦菲真可惜这张脸!穿西装仙女感尽失,换刀切刘海被吐槽像假发穿衣凹造型美与否,不仅仅取决于衣品穿搭,一些看似不起眼的细节也能起到关键作用,就拿发型来说,能够改变一个人的气质和魅力,所以现如今,很多女生穿衣凹造型,也少不了发型这一块的装饰,结49岁孟晚舟近况看心疼,穿珍珠裙难掩老气,发际线后移真像任正非女性穿衣多多少少会因为年龄的缘故,在穿搭上会变得越来越保守,不会像年轻小姐姐那样追求什么性感,少女,更多的还是以简约为主,用衣品来展现自己的气质,同时降低造型的出错率,避免造型出现新天龙八部七夕开播,上线央视却槽点不断,经典果真难以超越翻拍的意义到底在哪里?翻拍剧总是出烂剧,为何还是挡不住制片人对经典的觊觎?其实无非就是因为情怀二字了。因为大众对这些经典有着抹不去的情怀,所以一些导演跟制片方便利用了这一点来吸引眼再一次被河南卫视惊艳到了继唐宫夜宴洛神水赋爆红后河南卫视又推出七夕奇妙游一步一重天,一夜一千年金刚和飞天神女的共舞刚柔并济龙门金刚一场绝佳的视觉体验看着看着鸡皮疙瘩都起来了画面也是帧帧壁纸级巾帼不让须眉荡霍尊发长文请求原谅,他值得被原谅吗?看网友们都是怎么说的今日,霍尊文化传播工作室以官方名义发了一篇微博,配文是请伤害到此为止吧。,还配有长图说明。微博一发,网友们都各执一词各抒己见,我们一起看看网友们是怎么看待他的这次发文吧!从网友们的新天龙八部首播!主演造型粗糙,阿朱显老,王语嫣眼线抢眼由杨佑宁文咏珊白澍张天阳等人主演的天龙八部正式开播。作为金庸先生的代表作之一,天龙八部已经多次被改编成影视剧作品,观众对于故事情节更是耳熟能详。有那么多珠玉在前,这一版的翻拍自然也