引言

本篇文章介绍MySQL的逻辑架构图。

MySQL并不完美,但足够灵活,能够适应高要求环境。MySQL不仅可以嵌入到应用程序中,同时也可以支持数据仓库、内容搜索、和部署软件、高可用的冗余系统、在线事务处理系统等各种应用类型。

一、MySQL逻辑架构

MySQL最重要、最与众不同的特性就是它的存储引擎架构,这种架构将:查询处理、其他系统任务、数据的存储与提取 三部分分离。所以,带来的好处就是可以在使用时根据性能、特性,以及其他需求来选择数据存储方式

存储引擎架构分为三层,自上而下,分为第一层:连接层;第二层:服务层;第三层:引擎层

连接层:

MySQL的最上层是连接服务,引入了线程池的概念,允许多台客户端连接。主要工作是:连接处理、授权认证、安全防护等

连接层为通过安全认证的接入用户提供线程,同样,在该层上可以实现基于SSL 的安全连接。

服务层:

服务层用于处理核心服务,如标准的SQL接口、查询解析、SQL优化和统计、全局的和引擎依赖的缓存与缓冲器等等。所有的与存储引擎无关的工作,如过程、函数等,都会在这一层来处理。在该层上,服务器会解析查询并创建相应的内部解析树,并对其完成优化,如确定查询表的顺序,是否利用索引等,最后生成相关的执行操作。如果是SELECT 语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。

引擎层:

存储引擎层,存储引擎负责实际的MySQL数据的存储与提取服务器通过API 与 存储引擎进行通信。不同的存储引擎功能和特性有所不同,这样可以根据实际需要有针对性的使用不同的存储引擎。

二、MySQL 工作流程

在这里,我从数据库架构的三个层面分别介绍数据库的工作流程: 
最上层:客户端连接 
  1、连接处理:客户端同数据库服务层建立TCP连接,连接管理模块会建立连接,并请求一个连接线程。如果连接池中有空闲的连接线程,则分配给这个连接,如果没有,在没有超过最大连接数的情况下,创建新的连接线程负责这个客户端。 
   
  2、授权认证:在真正的操作之前,还需要调用用户模块进行授权检查,来验证用户是否有权限。通过后,方才提供服务,连接线程开始接收并处理来自客户端的SQL语句。

第二层:核心服务 
  1、连接线程接收到SQL语句之后,将语句交给SQL语句解析模块进行语法分析和语义分析。

  2、如果是一个查询语句,则可以先看查询缓存中是否有结果,如果有结果可以直接返回给客户端。

  3、如果查询缓存中没有结果,就需要真的查询数据库引擎层了,于是发给SQL优化器,进行查询的优化。如果是表变更,则分别交给insert、update、delete、create、alter处理模块进行处理。

第三层:数据库引擎层 
  1、打开表,如果需要的话获取相应的锁。 
   
  2、先查询缓存页中有没有相应的数据,如果有则可以直接返回,如果没有就要从磁盘上去读取。

  3、当在磁盘中找到相应的数据之后,则会加载到缓存中来,从而使得后面的查询更加高效,由于内存有限,多采用变通的LRU表来管理缓存页,保证缓存的都是经常访问的数据。

最后,获取数据后返回给客户端,关闭连接,释放连接线程。

MySQL 高级 ———— MySQL逻辑架构图简介相关推荐

  1. mysql获取逻辑日志_Mysql 逻辑架构图及日志系统

    1.Mysql逻辑架构图 场景一:一条SQL语句如何执行? 如图显示一条SQL语句的执行过程: 执行器的执行流程: 2.Mysql日志系统 说到日志系统,需要了解几个概念:creash-safe.re ...

  2. Mysql高级教程思维导图

    Mysql高级教程思维导图 1.思维导图总览: 2.MySQL架构介绍: 2.1.MySQL简介 2.2.MySQL Linux版安装 2.3.MySQL配置文件 2.4.MySQL逻辑架构介绍 2. ...

  3. mysql 概念和逻辑架构

    1.MySQL整体逻辑架构 mysql 数据库的逻辑架构如下图: 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安 ...

  4. mysql安全补丁如何处理_3分钟学会mysql数据库的逻辑架构原理

    这篇文章主要是从mysql数据库的逻辑架构来认识掌握mysql的原理.只要是稍微有一点计算机的相关知识相信都能看明白. 一.笼统的逻辑架构 先给出一张逻辑架构图,这张图是让你从宏观的角度来分析认识一下 ...

  5. 更换mysql_3分钟学会mysql数据库的逻辑架构原理

    这篇文章主要是从mysql数据库的逻辑架构来认识掌握mysql的原理.只要是稍微有一点计算机的相关知识相信都能看明白. 一.笼统的逻辑架构 先给出一张逻辑架构图,这张图是让你从宏观的角度来分析认识一下 ...

  6. Mysql高级调优篇——前言简介

    本篇开始就进入Mysql高级篇,当然我讲解的身份是Java开发工程师,并非专业的DBA,所以我们以写出高效,好用,Sql优化和开发相关的数据库方面的知识落地为目的,帮助开发解决一些sql上的问题,为迈 ...

  7. mysql数据库的逻辑架构和存储引擎

    mysql逻辑架构 第一层 最上层的服务并不是mysql独有的,大多数基于客户端/服务器的工具或服务器都有类似架构.主要服务包括:连接处理,授权认证,安全等. 第二层 第二层架构是mysql比较有意识 ...

  8. MySQL高级-MySQL存储引擎

    MySQL存储引擎 1.MySQL体系结构 2. 存储引擎 2.1 存储引擎概述 2.2 各种存储引擎特性 2.2.1 InnoDB 2.2.2 MyISAM 2.2.3 MEMORY 2.2.4 M ...

  9. ENode 2.8 最新架构图简介

    ENode架构图 什么是ENode ENode是一个.NET平台下,纯C#开发的,基于DDD,CQRS,ES,EDA,In-Memory架构风格的,可以帮助开发者开发高并发.高吞吐.可伸缩.可扩展的应 ...

最新文章

  1. Postgresql: 时间戳long,TimeStamp,Date,String互转
  2. 李德毅院士:新一代人工智能十问
  3. CSU2188: Substring
  4. 2.8 使用开源的实现方案-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  5. 石板切割问题c语言_天长井盖切割机切圆机市政窨井盖切圆机
  6. lambda中sorted排序
  7. 漫画:Integer 竟然有 4 种比较方法?
  8. JavaScript设计模式返璞归真
  9. 巧用clear:both
  10. Java实现对文件的读写操作
  11. 计算机基础知识教程excel单元格拆分,电脑内怎么将excel表格中某个单元格的内容拆分至不同单元格里...
  12. 教你如何在虚拟机中安装镜像(图解)
  13. CSS中clientHeight、offsetHeight、scrollHeight、scrollTop、scrollTo几者的区别和关联
  14. BCNF与3NF的区别例子
  15. 跌倒综述 Deep Learning Based Systems Developed for Fall Detection A Review
  16. linux下磁盘sda,Linux下磁盘设备文件(sda,sdb,sdc….)变化问题
  17. 人工智能第2章 智能 Agent
  18. Android应用启动之从Launcher拉起APP(三)
  19. [Flink on yarn]Please check if you store classloaders directly or indirectly in static fields.
  20. 【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数

热门文章

  1. lambda python_Python | Lambda和filter()与示例
  2. List 集合去重的 3 种方法
  3. 链表竟然比数组慢了1000多倍?(动图+性能评测)
  4. 【逆强化学习-1】学徒学习(Apprenticeship Learning)
  5. SqlServer用SQL语句将查出的数据直接插入到另一个张的表中
  6. linux脚本vrrp_script,keepalived 的 vrrp_script
  7. python消息队列模块_day43-python消息队列二-queue模块
  8. mysql跳过安全_Navicat连接MySQL数据库
  9. ++ 多核cpu 并行_一文读懂什么是多核并行计算(三)
  10. threadlocal存连接对象的目的_终于懂了ThreadLocal,不再害怕面试官问了