MySQL体系架构

一、 MySQL体系架构

MySQL体系架构可分为物理架构和逻辑架构。

1、MySQL物理体系架构

1.1 配置文件

  • auto.cnf: 配置了MySQL Server的UUID
  • my.cnf: MySQL的配置文件

1.2 其他重要文件

  • -basedir=dir_name: MySQL安装的二进制文件目录
  • -datadir=dir_name: MySQL的数据目录和
  • -pid-file=file_name: 保存MySQL进程ID文件
  • -log-error=file_name: MySQL错误日志文件

2、MySQL逻辑体系架构

MySQL逻辑系统架构分为3层:

  • 应用层
  • MySQL服务层
  • 存储引擎层

2.1 应用层

应用层是MySQL体系架构的最上层,它可其他client-server架构一样,主要包含如下内容:

  • 连接处理
  • 用户鉴权
  • 安全管理

1) 连接处理当一个客户端向服务端发送连接请求后,MySQL server会从线程池中分配一个线程来和客户端进行连接,以后该客户端的请求都会被分配到该线程上。MySQL Server为了提高性能,提供了线程池,减少了创建线程和释放线程所花费的时间。

2)用户鉴权 当客户端向MySQL服务端发起连接请求后,MySQL server会对发起连接的用户进行鉴权处理,MySQL鉴权依据是: 用户名,客户端主机地址和用户密码。

3) 安全管理 当客户连接到MySQL server后,MySQL server会根据用户的权限来判断用户具体可执行哪些操作。

2.2 MySQL 服务层

该层是MySQL Server的核心层,提供了MySQL Server数据库系统的所有逻辑功能,该层可以分为如下不同的组件:

  • MySQL Management Server & utilities (系统管理)
  • SQL Interface (SQL 接口)
  • SQL Parser (SQL 解析器)
  • Optimizer (查询优化器)
  • Caches & buffers (缓存)

1)MySQL Management Server & utilities(系统管理) 提供了丰富的数据库管理功能,具体如下:

  • 数据库备份和恢复
  • 数据库安全管理,如用户及权限管理
  • 数据库复制管理
  • 数据库集群管理
  • 数据库分区,分库,分表管理
  • 数据库元数据管理

2)SQL Interface(SQL 接口) SQL接口,接收用户的SQL命令并进行处理,得到用户所需要的结果,具体处理功能如下:

  • Data Manipulation Language (DML).
  • Data Definition Language (DDL).
  • 存储过程
  • 视图
  • 触发器

3)SQL Parser(SQL 解析器) 解析器的作用主要是解析查询语句,最终生成语法树。首先解析器会对查询语句进行语法分析,如果语句语法有错误,则返回相应的错误信息。语法检查通过后,解析器会查询缓存,如果缓存中有对应的语句,就直接返回结果不进行接下来的优化执行操作。
注:如果缓存中数据被修改,会被清出缓存。

4)Optimizer(查询优化器) 优化器的作用主要是对查询语句进行优化,包括选择合适的索引,数据的读取方式。

5)Caches & buffers(缓存) 包括全局和引擎特定的缓存,提高查询的效率。如果查询缓存中有命中的查询结果,则查询语句就可以从缓存中取数据,无须再通过解析和执行。这个缓存机制是由一系列小缓存组成,如表缓存、记录缓存、key缓存、权限缓存等。

2.3 存储引擎层

1. 存储引擎 存储引擎是MySQL中具体与文件打交道的子系统,也是MySQL最有特色的地方。MySQL区别于其他数据库的最重要特点是其插件式的表存储引擎。他根据MySQL AB公司提供的文件访问层抽象接口来定制一种文件访问的机制(该机制叫存储引擎)。

2. 物理文件 物理文件包括:redolog、undolog、binlog、errorlog、querylog、slowlog、data、index等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/20226.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

特征选择与特征提取

目录 一、 特征选择1、特征2、特征选择3、扩展——特征选择算法(有兴趣和精力可了解)拓展--完全搜索:拓展--启发式搜索:拓展--随机搜索:拓展--遗传算法: 二、 特征提取三、特征提取主要方法——PCA(主成分分析)1、PCA算法是如何实现的?PCA--零均值化(中心…

抖音未来的发展趋势|成都欢蓬信息

抖音未来的发展趋势,近年来随着互联网技术的发展,小视频app也逐渐走入大家的日常生活中,闲着的时候打开手机抖音APP,就可以刷到世界各地人们分享的视频和直播,下面一起看看抖音未来的发展趋势 一、抖音的现状   据权…

某IC交易网 js逆向解析学习【2023/05/16】

文章目录 文章目录 文章目录前言网址目标参数确认加密点cookie解密第一步hex1算法解析rind和rnns完结撒花前言 可以关注我哟,一起学习,主页有更多练习例子 如果哪个练习我没有写清楚,可以留言我会补充 如果有加密的网站可以留言发给我,一起学习共享学习路程 如侵权,联系我…

springboot + vue3实现视频播放Demo

文章目录 学习链接前言ffmpeg安装ffmpeg配置环境变量分割视频文件 后台配置WebConfig 前端代码video.js示例安装依赖视频播放组件效果 Vue3-video-play示例安装依赖main.js中使用视频播放组件效果 学习链接 ffmpeg官网 长时长视频java存储及vue播放解决方法 【 攻城略地 】vue…

让Chat-GPT成为你的微信小助理

前言 最近公司裁员风波,很不幸成为了裁员名单中的一员;此时又恰逢一波AIGC浪潮,首当其冲的就是GPT这样的大语言模型的诞生,是整个AI领域的一个质的飞跃。正好在这样一个空挡期,我就基于Chat-GPT 做了一些深入的实践&a…

Cannot read properties of null (reading ‘content‘)报错解决

项目是用vue3webpack,始终启动不成功~ 一、问题报错 二、报错解决尝试总结 (1)首先尝试的是因为我近期在做vite3vue3的需求把node版本升到了 16.17.1 猜测是不是node版本影响的 node版本切了14.15.3,16.17.1,以及很…

Oracle EBS Interface/API(48)- AP发票取消API

快速参考 参考点内容功能导航N: AP->发票->录入->发票并发请求None基表AP.AP_INVOICES_ALLAPI参考下面介绍错误信息表None接口FormNone接口RequestDebug ProfileNone详细例子参考如下实例官方文档None数据验证包None用户界面 Path:AP->发票>录入>发票->活…

全网火爆,性能测试从0到1分析需求到实战详解,冲出高级测试岗...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、制定测试目的 …

国产ChatGPT命名图鉴

很久不见这般热闹的春天。 随着ChatGPT的威名席卷全球,大洋对岸的中国厂商也纷纷亮剑,各式本土大模型你方唱罢我登场,声势浩大的发布会排满日程表。 有趣的是,在这些大模型产品初入历史舞台之时,带给世人的第一印象其…

做SSM项目的步骤和优化

SSM框架整合 这里说的SSM整合,主要说的是Spring和mybatis之间的整合。因为spring和springMVC都是spring生态系统中的框架,所以spring和springMVC之间的整合是无缝的整合,即,我们在不知不觉中,其实spring和springMVC已…

git如何将本地分支推送到远程(远程上没有该分支)

Author: wencoo Blog:https://wencoo.blog.csdn.net/ Date: 12/05/2023 Details:文章目录 正文 或 背景7.如果远程新建了一个分支,本地没有该分支。8.如果本地新建了一个分支 branch_name,但是在远程没有。报错解决 参考打赏 正文 或 背景 本…

Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件

本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件的名称,从另一个文件夹中找到与这一文件夹中文件同名的文件,并将找到的同名文件复制到第三个文件夹中的方法。 首先,我们来明确一下本…

【Java】EasyExecl数据导入

【Java】EasyExecl数据导入 📔 千寻简笔记介绍 千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助…

如何设计API返回码(错误码)?

一、前言 二、HTTP 状态码参考 三、参数约定 四、个性化 Message 五、返回信息的统一处理 一、前言 客户端请求 API,通常需要通过返回码来判断 API 返回的结果是否符合预期,以及该如何处理返回的内容等 相信很多同学都吃过返回码定义混乱的亏&…

聚观早报 |苹果头显得到Oculus创始人认可;AI加持Bing市场份额反降

今日要闻:苹果头显得到Oculus创始人认可;AI加持下Bing市场份额不增反降;AI歌手翻唱大火可能涉及多项侵权;小米辟谣武汉总部35岁以上员工只保留10%;特斯拉2023年度股东大会下周召开 苹果头显得到Oculus创始人认可 5 月…

商场地图怎么画最简单?商场导视图怎么做?

商场购物中心超大的经营规模能为广大顾客提供购物选择的同时,也面临着许多问题:购物体验差,顾客到店率低。以及数据缺失,无法为商家做营销决策提供依据等等,那么,如何快速提升商场店铺运营效果,…

8年测试老鸟总结,软件测试工程师关键成长晋升要素,这些不能不知道...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、技术-依然是最…

cmake学习笔记

单文件入门 基本函数 PROJECT(projectname [CXX] [C] [Java]) SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]]) MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display” …) ADD_EXECUTABLE([BINARY] [SOURCE_LIST]) 例子 文件结构如下: // ma…

泰克Tektronix AFG31021 任意波函数发生器产品资料

AFG31021是一款高质量、多功能的任意波形发生器,可以生成高精度、高分辨率的波形信号。该产品的主要特点包括: 可以生成任意波形信号,内置多种标准波形,如正弦波、方波、三角波、锯齿波等,也可以通过用户自定义来生成…

k8基础知识

总述 在构成扁平化网络的基础上实现Pod编排(控制、管理)、调度,再构成服务;对服务的管理有所欠缺;可以说k8s重点解决资源的问题 服务管理、应用管理;istio重点解决服务的问题 功能 开源、动态伸缩、负载…