首页 > 数据库 >Mysql-基本体系

Mysql-基本体系

时间:2023-06-24 14:22:08浏览次数:59  
标签:体系 基本 存储 SQL 查询 引擎 Mysql 组件 客户端

Mysql的体系结构概览

1.1 逻辑架构图

image-20230624141516939

img

整个MySQL Server由以下组成

  • Connection Pool : 连接池组件
  • Management Services & Utilities : 管理服务和工具组件
  • SQL Interface : SQL接口组件
  • Parser : 查询分析器组件
  • Optimizer : 优化器组件
  • Caches & Buffers : 缓冲池组件
  • Pluggable Storage Engines : 存储引擎
  • File System : 文件系统

1) 连接层

最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

2) 服务层

第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如 过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定表的查询的顺序,是否利用索引等, 最后生成相应的执行操作。如果是select语句,服务器还会查询内部的缓存,如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。

3) 引擎层

存储引擎层, 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。

4)存储层

数据存储层, 主要是将数据存储在文件系统之上,并完成与存储引擎的交互。

和其他数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎上,插件式的存储引擎架构,将查询处理和其他的系统任务以及数据的存储提取分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

标签:体系,基本,存储,SQL,查询,引擎,Mysql,组件,客户端
From: https://www.cnblogs.com/yang37/p/17501070.html

相关文章

  • Mysql-索引
    0.概述索引(index)是帮助MySQL高效获取数据的数据结构(有序)。索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数......
  • 在MySQL中实现upsert功能
    1语法示例INSERTINTOtable_name(column1,column2,...)SELECTcolumn1,column2,...FROMtemp_tableONDUPLICATEKEYUPDATEcolumn1=VALUES(column1),column2=VALUES(column2),...;2自己项目中的SQL代码示例INSERTINTOhs_stock_marke......
  • 基于SpringBoot+MySQL+IDEA开发的家庭财务管理系统
    基于SpringBoot+MySQL+IDEA开发的家庭财务管理系统项目介绍......
  • Mysql-二刷一些重要知识点记录
    执行DDL的时候,即使此DDL被其他DML阻塞了,但是后续DML都会被此DDL阻塞(个人理解:DDL、DML按照申请顺序排队执行)[DML加MDL读锁,DDL加MDL写锁,读写之间互斥]使用onlineddl也就不害怕线上DDL了changebuffer存储inser和update的数据。如果不马上查询,起到加速DML的作用[尽量......
  • PostgreSQL BTree(B-Link-tree) 索引 基本 实现原理
    文章目录背景BTreeB+TreeB-Link-Tree基本数据结构的插入实现BTreeInsert实现B+TreeInsert实现PostgreSQLBTree实现整体结构BTree索引创建实现_bt_buildadd_bt_uppershutdownBTree查询_bt_search实现BTree插入_bt_doinsert实现_bt_split节点分裂_bt_insert_parentlef......
  • 一天吃透MySQL面试八股文
    内容摘自我的学习网站:topjavaer.cn什么是MySQLMySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。数据库的三......
  • MySQL的wait_timeout 参数 set global 设置不生效
    MySQL服务连接数突然暴增,登录服务查看大都是sleep进程,并且1分钟会启用一个新的连接,紧急处理方案是需要手动去释放连接数。登录服务器查看当前超时时间mysql>showvariableslike'%timeout%';+-----------------------------+----------+|Variable_name|Valu......
  • MySQL 中常见的高可用架构部署方案
    MySQL中常见的高可用架构部署方案IT奋斗的青年 2023-06-0608:36 发表于山东收录于合集#mysql17个MySQL中的集群部署方案前言这里来聊聊,MySQL中常用的部署方案。MySQLReplicationMySQLReplication 是官方提供的主从同步方案,用于将一个MySQL的实例同步到另......
  • SpringCloud Alibaba入门2-common模块和user模块的基本开发
    我们使用上一章节的项目环境进行开发。https://blog.51cto.com/u_13312531/6536187一、父项目引入SpringBoot我们在父项目pom文件中统一管理引入的jar包的版本。我们采用父项目中以depencyMangement方式引入spring-boot,子项目依赖parent父配置即可。<?xmlversion="1.0"encoding="......
  • mysql的读写分离
    读写分离的作用和实现的方式实验环境:上文的主从复制,以及新增了一台客户端进入主mysql数据库创建读写分离账号查看建立的读写分离账号挂载云计算光盘移动解压jdk一直回车后看到此询问输入yes将Java环境从1.8.0_131更改为1.6.0_14修改环境变量添加此三行数据移动jdk安装位置更新环境......