📜  MySQL的体系结构

📅  最后修改于: 2021-08-27 17:00:23             🧑  作者: Mango

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

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

MySQL由瑞典公司MySQL AB开发和支持,它是用C和C++编程语言编写的。它是由Michael Widenius和David Hughes共同开发的,经常被用来说MYSQL是根据联合创始人MIchael Widenius的女儿的名字命名的,名字是“ My”。

MySQL的体系结构:

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

  • 客户
  • 服务器
  • 储存层

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

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

连接处理:
当客户端向服务器发送请求时,服务器将接受该请求并且客户端已连接..当客户端当时连接到服务器时,客户端将获得其自己的连接线程。借助此线程,将执行来自客户端的所有查询。

验证 :
当客户端连接到MYSQL服务器时,在服务器端执行认证。身份验证是通过用户名和密码来完成的。

安全 :
进行身份验证后,如果客户端成功连接到MySQL服务器,则服务器将检查特定的客户端是否具有在针对MySQL服务器的某些查询中发出的特权。

服务器层:
MYSQL体系结构的第二层负责MYSQL关系数据库管理系统的所有逻辑功能。 MYSQL系统的这一层也称为“ MYSQL体系结构的大脑” 。当客户端向服务器发出请求指令,并且指令匹配后,服务器即给出输出。 MYSQL服务器的各个子组件是:

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

存储层:
MYSQL体系结构的此存储引擎层使其具有独特性,对于开发人员来说是最可取的。由于这一层,MYSQL层被认为是最常用的RDBMS,并且被广泛使用。在MYSQL服务器中,针对不同的情况和需求,使用不同类型的存储引擎,例如InnoDB,MYiSAM,NDB,内存等。这些存储引擎用作可插入存储引擎,其中将用户创建的表插入其中。

MYSQL的功能:

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