MySQL 采用了什么样的体系架构设计来执行一条SQL?
好,我们看一张架构图,MySQL的体系架构就是这样一张图。
最上面就是客户端,比如说我们通过Java、PHP、Python等等这种编程语言,都可以连接到MySQL上面来。如果我们是Java语言,那么这个是通过JDBC与MySQL数据库服务器建立连接。
在MySQL数据库服务器里边,有一块区域就是连接池,它会验证你这个连接,验证你建立的连接有没有权限或者用户名密码是否是正确等等。
如果没有问题连接成功了,接下来客户端代码向MySQL发送一条SQL语句,此时就会经过SQL接口,接收SQL语句接收到之后,接下来它会进行解析,把这个SQL语句解析成一个合法的语法树。
接下来会对这个SQL语句进行一个优化,就是选择一个最优的路径去查询数据,比如说我们从北京去上海,可以坐火车也可以坐飞机,那么坐飞机会更快,SQL优化就是把我们的语句选择一个最优的路径再去查询。
然后图中右边有一块是缓存,如果是相同的SQL,查过一遍的,那么第二次查的时候它就缓存起来了,就更快一些。
当然这个缓存默认是关闭的,需要在配置中开启才可以用这个缓存。
然后完了之后下面就是存储引擎,我们有了一个最优的执行的计划了,然后通过存储引擎去执行查询,存储有很多种,它是一种可插拔的一种存储引擎方式,这也是MySQL的一个特色。
在MySQL5.5及以后的版本都默认用的是InnoDB存储引擎,在5.5之前默认是myisam存储引擎,除此之外还有其他的一些存储引擎,通过存储引擎然后去查询数据,我们的数据实际上在磁盘里面或者内存,那么数据在磁盘内存,那么它是通过存储引擎来去管理和维护的,通过存储引擎然后去查询数据。
这张图里还有一块是一些工具,比如说备份,或者数据的导出导入,或者数据复制等等一些工具。
本文由《MySql教程网》原创,转载请注明出处!https://mysql360.com