📜  MySQL的架构

📅  最后修改于: 2021-09-10 01:24:25             🧑  作者: Mango

MySQL是关系数据库管理系统,它是 GNU 许可下的免费开源软件。它也得到了 Oracle 公司的支持。它是快速、可扩展、易于使用的数据库管理系统。 MYSQL 支持多种操作系统,如 Windows、Linux、MacOS 等。

MySQL 是结构化查询语言,用于在各种查询的帮助下操作、管理和检索数据。

MySQL 由瑞典公司 MySQL AB 开发和支持,使用 C 和 C++ 编程语言编写。它是由 Michael Widenius 和 David Hughes 开发的。人们常说 MYSQL 以联合创始人 MIchael Widenius 的女儿的名字命名,她的名字是“我的”。

MySQL的架构:

MYSQL 的体系结构描述了 MYSQL 系统不同组件之间的关系。 MYSQL 遵循客户端-服务器架构。它的设计使得作为客户端的最终用户可以使用各种网络服务从作为服务器的计算机访问资源。 MYSQL 的架构包含以下主要层:

  • 客户
  • 服务器
  • 存储层

客户层:
这一层是上图中的最顶层。客户端在客户端层的帮助下向服务端发出请求指令。客户端使用有效的 MYSQL 命令和表达式通过命令提示符或通过 GUI 屏幕发出请求。如果表达式和命令有效,则在屏幕上获得输出。客户层的一些重要服务是:

  • 连接处理。
  • 验证。
  • 安全。

连接处理:
当客户端向服务器发送请求,服务器将接受请求并连接客户端.. 当客户端连接到服务器时,客户端获得自己的连接线程。在这个线程的帮助下,来自客户端的所有查询都被执行。

验证 :
当客户端连接到 MYSQL 服务器时,在服务器端进行身份验证。身份验证是在用户名和密码的帮助下完成的。

安全 :
当客户端成功连接到 MySQL 服务器时,经过身份验证后,服务器将检查特定客户端是否具有针对 MySQL 服务器发出某些查询的权限。

服务器层:
MYSQL 架构的第二层负责 MYSQL 关系数据库管理系统的所有逻辑功能。这一层MYSQL系统也被称为“MYSQL架构的大脑” 。当 Client 给 Server 发出请求指令,Server 一匹配指令就给出输出。 MYSQL 服务器的各个子组件是:

  • 线程处理 –
    当客户端向服务器发送请求,服务器将接受请求并连接客户端.. 当客户端连接到服务器时,客户端获得自己的连接线程。该线程由服务器层的线程处理提供。此外,由线程执行的客户端查询也由线程处理模块处理。
  • 解析器——
    解析器是一种软件组件,它构建给定输入的数据结构(解析树)。在解析词法分析完成之前,即输入被分解为标记的数量。在较小元素解析器中的数据可用后,执行语法分析,然后生成该解析树作为输出的语义分析。
  • 优化器——
    一旦解析完成,优化器块就会应用各种类型的优化技术。这些技术可能包括重写查询、扫描表的顺序以及选择要使用的正确索引等。
  • 查询缓存 –
    查询缓存存储输入查询语句的完整结果集。解析前夕,MYSQL Server 查询查询缓存。当客户端编写查询时,如果客户端编写的查询在缓存中相同,那么服务器只需跳过解析、优化甚至执行,它只是简单地显示缓存的输出。
  • 缓冲区和缓存 –
    缓存并将缓冲存储用户提出的先前查询或问题。当用户编写查询时,它首先进入查询缓存,然后查询缓存将检查缓存中是否存在相同的查询或问题。如果相同的查询可用,那么它将提供输出而不会干扰解析器、优化器。
  • 表元数据缓存 –
    元数据缓存是保留的内存区域,用于跟踪有关数据库、索引或对象的信息。打开的数据库、索引或对象的数量越多,元数据缓存大小就越大。
  • 密钥缓存 –
    键缓存是唯一标识缓存中对象的索引条目。默认情况下,边缘服务器基于整个资源路径和查询字符串缓存内容。

存储层:
MYSQL 架构的这个存储引擎层使其独一无二,最适合开发人员的 .由于这一层,MYSQL 层被认为是最常用的 RDBMS 并被广泛使用。在 MYSQL 服务器中,针对不同的情况和需求,使用不同类型的存储引擎,包括 InnoDB、MYiSAM、NDB、Memory 等。这些存储引擎用作可插拔存储引擎,用户创建的表与它们一起插入。

MYSQL的特点:

  1. 与 C、C++、 Java等其他编程语言相比,MYSQL 语言易于使用。通过学习一些基本命令,我们可以工作、创建和与数据库交互。
  2. MYSQL 由数据安全层组成,保护数据免受侵犯。此外,密码在 MYSQL 中加密。
  3. MYSQL 遵循客户端-服务器架构,客户端请求命令和指令,服务器将在指令匹配后立即产生输出。
  4. MYSQL 可以在它的 Community 版本下免费使用。所以我们可以从 MYSQL 网站下载它并自由地处理它。
  5. MYSQL 使用多线程使其具有可扩展性。它可以处理任意数量的数据。默认文件大小限制为 4 GB,但我们可以根据需要增加它。
  6. MYSQL 被认为是最快的数据库之一。它的牢度是在大量基准测试的基础上确定的。
  7. MYSQL 非常灵活,因为它支持大量的嵌入式系统。
  8. MYSQL 兼容运行在各种操作系统上,如 Windows、MacOS、Linux 等。
  9. MYSQL 允许事务回滚、提交和现金回收。
  10. 它具有低内存泄漏问题,可提高其内存效率。
  11. MYSQL 8.0 版提供双密码支持,一个是当前密码,一个是二级密码。借助这个,我们可以创建新密码。
  12. MYSQL 提供了分区功能,可以提高大型数据库的性能。