《一起学mysql》一、开篇

​ mysql作为一个开源的关系型数据库,融合了这个社会的缩影。

​ 我们在看护下成长或独自生根发芽、解决生活的烦恼,然后组成另一个家庭。也会在社会中由一席之地。


个体

家庭(数据库)中每个人都有着重要的任务:

连接器:连接器要管理链接,权限验证。

查询缓存:命中数据直接返回,但是听说老了退休了。

分析器:分析器词法分析,语法分析。

优化器:优化器确定最后的执行计划,并挑选出执行索引。

执行器:执行器操作存储引擎,返回操作结果。

他们就像一个工厂中的流水线工人,将客人(客户端)的订单(请求)顺序执行,然后放入机器(存储引擎)。


家庭

家庭(数据库)协作很重要,每个人都不可替代

  • 连接器

    第一步,用户会先和这个家庭建立联系,这个时候对外的是连接器连接器负责和用户建立联系,校验权限,维持和管理双方的联系。

    一般会写出这样一封信:

    mysql -h$ip -P$port -u$user -p
    

    当双方建立通信(TCP握手)后,连接器就会确认对方信息,如果发现不是授权用户,就会返回一个“Access denied for user”。

    连接器也会思考和用户的通信状态,比如确定自己是否是空闲的,如果空闲就竖起一个“sleep”的牌子,但是一旦休息超过8小时时(默认值),就主动断开和这个用户的通信。如果客户在断开后再次请求连接,就会收到一个“Lost connection to MySQL server during query。”的回信,告知通信已经断开。

    连接器一直在思考到底应该要和客户建立多久的连接才是合理的,他希望相对高效的完成自己的任务。如果一直不断开,那么就无法接待下一位客户,明显是不合理的;如果时间太短,会导致权限和连接浪费性能和时间。

    临时方案就是定期的断开大连接,这样消耗减少了很多。

    推陈出新的连接器在第5.7版本拿出了这样一个解决方式:每次在大操作(时间,空间)后,让连接初始化(释放内存),因为相互通信没有断,那么久可以不用建立连接和校验了。

  • 查询缓存

    建立完连接后,我们来到了第二部,访问查询缓存。

    每次建立连接完毕后,家里会在查询缓存老爷子这看看看。老爷子像一个门卫,之前登记过的信件和回信会登记在他的小笨笨上面。如果之前已经用相同的拜访者或者信件,老爷子就直接回信了。他认为放进去无在乎让他重新登记一次相同的数据,这样是很让费精力(性能)的。

但是在访问人数越来越多时,老爷子已经判断不了是否自己能够承接这个任务了,小本本越来越厚,改动越来越频繁。老爷子也到了要退休的年龄了。

到了8.0版本时,老爷子(查询缓存)退休了。

  • 分析器

    下一棒投递到了分析器,他就像一个摩斯密码的翻译者,将信件翻译成机器(存储引擎)认识的语言。

    分析器会将信件(任务)拆解为行为(select代表查询,update代表修改)。

    将执行内容转化为自己的工作语言(比如将 name = ‘’张三“,识别为等于张三的列name)。

    将重组后的语言进行赛选(语法分析),并判断是否有这些执行节点(表,字段),不合理的信件直接回信”You have an error in your SQL syntax“。

  • 优化器

    结束了分析器的工作,客户的寄信目的已经非常明确了,但是可能还是不够合理或者详细,这时候优化器就会代替客户在分析器翻译后的文章上用“更专业”的方式描述信件内容。

    他会判断客户的形容词(索引)是否准确,是否可以替换(优化),有多个形容词时,哪一个才是客户强调的重点,是否有客户忽略了的问题。

    他会分析客户叙述场景的方式(顺序),帮客户选出相对合理的执行流程(顺序)。

  • 执行器

    现在客户的需求已经非常明确了,并且已经拥有了明确的工作流执行文本,交给执行器的只剩执行了。

    执行器会判断客户是否有这个工作内容的执行节点的权限(表权限),如果权限不合理就会回信“ERROR 1142 (42000): *** command denied to user 'b'@'localhost' for table 'T'”

    判断完毕后,执行器会操作(调用)存储引擎,执行文本逻辑,并将执行结果写信寄出。

在家庭各成员紧密的配合下,每个成员成为了不可或缺的组成分子。

他们在明确的分工下完成自己的任务。

可能会有新的生命诞生,也会有退休的那一天。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容