首页 > 技术文章 > MySql轻松入门系列——第一站 从源码角度轻松认识mysql整体框架图

huangxincheng 2020-06-02 08:22 原文

一:背景

1. 讲故事

最近看各大技术社区,不管是知乎,掘金,博客园,csdn基本上看不到有小伙伴分享sqlserver类的文章,看来在国内大环境下是不怎么流行了,看样子我再写sqlserver是不可能再写了,这辈子都不会写了,只能靠技术输出mysql维持生活这样子。

二:了解架构图

mysql最大的好处就是开源, 手握百万源码,有什么问题搞不定呢? 这一点要比sqlserver爽多了,不用再dbcc捣来捣去。

1. 从架构图入手

大家都知道做/装修房子都要有一张图纸,其实软件也是一样,只要有了这么一张图纸,大方向就定下来了,再深入到细节也不会乱了方向,然后给大家看一下我自己画的架构图,画的不对请轻拍。

其实SqlServer,Oracle,MySql架构都大同小异,MySql的鲜明特点就是存储引擎做成了插拔式,这就牛逼了,现行最常用的是InnoDB,这就让我有了一个想法,有一套业务准备用 InMemory 模式跑一下,厉害了~~~

2. 功能点介绍

MySql其实就两大块,一块是MySql Server层,一块就是Storage Engines层。

<1> Client

不同语言的sdk遵守mysql协议就可以与mysqld进行互通。

<2> Connection/Thread Pool

MySql使用C++编写,Connection是非常宝贵的,在初始化的时候维护一个池。

<3> SqlInterface,Parse,Optimizer,Cache

对sql处理,解析,优化,缓存等处理和过滤模块,了解了解即可。

<4> Storage Engines

负责存储的模块,官方,第三方,甚至是你自己都可以自定义实现这个数据存储,这就把生态做起来了,

推荐阅读