返回顶部
首页 > 资讯 > 数据库 >MySql整体结构的示例分析
  • 786
分享到

MySql整体结构的示例分析

2024-04-02 19:04:59 786人浏览 薄情痞子
摘要

这篇文章主要介绍Mysql整体结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! MySql 整体结构mysql 由连接池、sql 接口、解析器

这篇文章主要介绍Mysql整体结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

MySql整体结构的示例分析

MySql 整体结构

mysql 由连接池、sql 接口、解析器、优化器、缓存、存储引擎等组成,可以分为三层,即 MySQL Server 层、存储引擎层和文件系统层。MySQL Server 层又包括连接层和 SQL 层。如下是官方文档中 MySQL 的基础架构图:

MySql整体结构的示例分析

上图中,Connection pool 为连接层,Management Services & Utilities …Caches & Buffers 为 SQL 层,Pluggable Storage Engines 为存储引擎层,File system、Files & Logs 为文件系统层。

Connectors 不属于以上任何一层,可以将 Connectors 理解为各种客户端、应用服务,主要指的是不同语言与 SQL 的交互。

1. 连接层

应用程序通过接口(如 ODBC、JDBC)来连接 MySQL,最先连接处理的是连接层。连接层包括通信协议、线程处理、用户名密码认证 3 部分。

  • 通信协议负责检测客户端版本是否兼容 MySQL 服务端。
    -线程处理是指每一个连接请求都会分配一个对应的线程,相当于一条 SQL 对应一个线程,一个线程对应一个逻辑 CPU,在多个逻辑 CPU 之间进行切换。
    -密码认证用来验证用户创建的账号、密码,以及 host 主机授权是否可以连接到 MySQL 服务器

Connection Pool(连接池)属于连接层。由于每次建立连接都需要消耗很多时间,连接池的作用就是将用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求缓存下来,下次可以直接用已经建立好的连接,提升服务器性能。

2. SQL层

SQL 层是 MySQL 的核心,MySQL 的核心服务都是在这层实现的。主要包含权限判断、查询缓存、解析器、预处理、查询优化器、缓存和执行计划。

  • 权限判断可以审核用户有没有访问某个库、某个表,或者表里某行数据的权限。

  • 查询缓存通过 Query Cache 进行操作,如果数据在 Query Cache 中,则直接返回结果给客户端,不必再进行查询解析、优化和执行等过程。

  • 查询解析器针对 SQL 语句进行解析,判断语法是否正确。

  • 预处理器对解析器无法解析的语义进行处理。

  • 查询优化器对 SQL 进行改写和相应的优化,并生成最优的执行计划,就可以调用程序的 api 接口,通过存储引擎层访问数据。

Management Services & Utilities、SQL Interface、Parser、Optimizer 和 Caches & Buffers 属于 SQL 层,详细说明如下表所示。

名称说明
Management Services & UtilitiesMySQL 的系统管理和控制工具,包括备份恢复、MySQL 复制、集群等。
SQL Interface(SQL 接口)用来接收用户的 SQL 命令,返回用户需要查询的结果。例如 SELECT FROM 就是调用 SQL Interface。
Parser(查询解析器)在 SQL 命令传递到解析器的时候会被解析器验证和解析,以便 MySQL 优化器可以识别的数据结构或返回 SQL 语句的错误。
Optimizer(查询优化器)SQL 语句在查询之前会使用查询优化器对查询进行优化,同时验证用户是否有权限进行查询,缓存中是否有可用的最新数据。它使用“选取-投影-连接”策略进行查询。例如 SELECT id, name FROM student WHERE gender = "女";语句中,SELECT 查询先根据 WHERE 语句进行选取,而不是将表全部查询出来以后再进行 gender 过滤。SELECT 查询先根据 id 和 name 进行属性投影,而不是将属性全部取出以后再进行过滤,将这两个查询条件连接起来生成最终查询结果。
Caches & Buffers(查询缓存)如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的,比如表缓存、记录缓存、key 缓存、权限缓存等。

3. 存储引擎层

Pluggable Storage Engines 属于存储引擎层。存储引擎层是 MySQL 数据库区别于其他数据库最核心的一点,也是 MySQL 最具特色的一个地方。主要负责 MySQL 中数据的存储和提取。

因为在关系数据库中,数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型).

4. 文件系统层

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

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

以上是“MySql整体结构的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: MySql整体结构的示例分析

本文链接: https://lsjlt.com/news/55477.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySql整体结构的示例分析
    这篇文章主要介绍MySql整体结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! MySql 整体结构MySQL 由连接池、SQL 接口、解析器...
    99+
    2024-04-02
  • MySQL体系结构的实例分析
    这期内容当中小编将会给大家带来有关MySQL体系结构的实例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 MySQL是由SQL接口,解析...
    99+
    2024-04-02
  • JVM中体系结构的示例分析
    小编给大家分享一下JVM中体系结构的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是JVM?JVM(Java Virtual Machine)是一个抽...
    99+
    2023-06-20
  • MySQL体系架构的示例分析
    这篇文章给大家分享的是有关MySQL体系架构的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL 体系架构MySQL 体系架构主要分为两部分:客户端和服务端客户端客...
    99+
    2024-04-02
  • JAVA异常体系结构的示例分析
    这篇文章主要介绍JAVA异常体系结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、什么是异常异常:程序在运行过程中发生由于硬件设备问题、软件设计错误等导致的程序异常事件。(在Java等面向对象的编程语言...
    99+
    2023-05-30
    java
  • Hadoop体系结构之HDFS的示例分析
    这篇文章将为大家详细讲解有关Hadoop体系结构之HDFS的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。    HDFS采用主从(Master/Slave)结构模型,一个HD...
    99+
    2023-06-03
  • mysql结构对比的示例分析
    小编给大家分享一下mysql结构对比的示例分析,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!小工具原由日常开发经常遇到数据库结构变更,但是不能实时记录下来,上线以后会造成测试和线上的数据库机构...
    99+
    2024-04-02
  • MySQL索引结构的示例分析
    这篇文章将为大家详细讲解有关MySQL索引结构的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。简介在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,...
    99+
    2023-06-29
  • MongoDB特点与体系结构的示例分析
    小编给大家分享一下MongoDB特点与体系结构的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.1什么是MongoDB...
    99+
    2024-04-02
  • C语言结构体指针的示例分析
    这篇文章给大家分享的是有关C语言结构体指针的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。写结构体指针前,先说一下 . 号和 -> 的区别记得当初刚学C语言的...
    99+
    2023-06-20
  • MySQL逻辑体系架构的示例分析
    这篇文章主要为大家展示了“MySQL逻辑体系架构的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL逻辑体系架构的示例分析”这篇文章吧。Mysql...
    99+
    2024-04-02
  • go xorm生成mysql的结构体实例分析
    本篇内容介绍了“go xorm生成mysql的结构体实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!网上很多资源都说是xor...
    99+
    2023-06-29
  • C语言中结构体和共用体的示例分析
    这篇文章给大家分享的是有关C语言中结构体和共用体的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、实验目的掌握结构体类型变量的定义和使用;掌握结构体类型数组的概念和应用;掌握链表的概念,初步学会对链表进...
    99+
    2023-06-20
  • MySql优化之体系结构及存储引擎的示例分析
    这篇文章给大家分享的是有关MySql优化之体系结构及存储引擎的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MySQL结构体系总体上, 我们可以把 MySQL 分成三...
    99+
    2024-04-02
  • C#结构体构造函数的实例分析
    这期内容当中小编将会给大家带来有关C#结构体构造函数的实例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#结构体构造函数的应用是如何的呢?C#结构体构造函数的实例1、  &nbs...
    99+
    2023-06-18
  • C语言结构体实例分析
    这篇文章主要介绍“C语言结构体实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言结构体实例分析”文章能帮助大家解决问题。1. 动态内存管理C语言代码----->编译----->...
    99+
    2023-06-29
  • vue-cli系列之vue-cli-service整体架构的示例分析
    这篇文章给大家分享的是有关vue-cli系列之vue-cli-service整体架构的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述vue启动一个项目的时候,需要执行...
    99+
    2024-04-02
  • HTML文档结构的示例分析
    这篇文章主要介绍了HTML文档结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。HTML文档的结构,我们可以将它理解为网页的语法结...
    99+
    2024-04-02
  • HTML页面结构的示例分析
    这篇文章主要介绍了HTML页面结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 许多时刻学网页出产垦荒的时辰第一看到的印象深入...
    99+
    2024-04-02
  • JavaScript之树结构的示例分析
    这篇文章主要介绍了JavaScript之树结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。二叉树--概念--二叉树是一种树形结构...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作