我是靠谱客的博主 尊敬斑马,最近开发中收集的这篇文章主要介绍【MySQL】--架构简介MySQL介绍区分数据库、数据库实例、数据库服务器MySQL架构一个查询流程图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MySQL介绍

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品,世界上最流行的关系型数据库管理系统之一,在 网络应用方面,MySQL是最好的关系数据库管理系统 (Relational Database Management System,RDBMS) 应用软件之一。

MySQL被设计为一个可移植的数据库,几乎能在当前所有的操作系统上运行,比如Linux,Solaris,Mac和Windows。尽管各种系统在底层(如线程)实现方面各有不同,但MySQL几乎总能保证在各平台上的物理体系结构的一致性。

MySQL是一个单进程多进程架构的数据库,但与Oracle多进程的架构有所不同(Oracle的Windows版本也是单进程多进程的架构)。这也就是说,MySQL数据库实例在系统上的表现就是一个进程。

区分数据库、数据库实例、数据库服务器

数据库(Database)

操作系统或存储上的数据文件的集合。MySQL数据库中,数据库文件可以是* .frm、.MYD、.MYI、*.ibd等结尾的文件,不同存储引擎文件类型不同。

数据库实例(Instance)

数据库实例是一个应用程序,是位于用户和操作系统之间的一层数据管理软件,由后台进程或者线程以及一个共享内存区组成。用户对数据库数据的任何操作,都是在数据库实例下进行的。应用程序只有通过数据库实例才能和数据库打交道。

数据库服务器(Database Server)

部署安装数据库实例的服务器。

数据库和数据库实例的关系

通常情况下,数据库实例和数据库是一一对应的关系,也就是一个数据库实例对应一个数据库;但在集群环境中存在多个数据库实例共同使用一个数据库。

MySQL架构

在这里插入图片描述

连接层

负责MySQL和其他应用程序的连接交互,包括连接管理、授权认证、安全等。由客户端程序连接和MySQL服务器上的连接池组成。

每个客户端连接都对应着服务器上的一个线程,MySQL服务器上维护了一个线程池,避免为每个连接都创建销毁一个线程。当客户端连接到MySQL服务器时,服务器对其进行认证。登录认证后,还要验证客户端是否有执行某个查询的操作权限。这一层并不是MySQL所特有的技术。

使用连接池的必要性:

每个连接对应一个线程,实际业务中通常有许多个连接访问数据库服务器,如果每次连接都要创建一个新的线程,连接释放则销毁线程,对于系统损耗是非常大的。通过连接池维护和缓存一定的连接,由应用程序动态地对池中的连接进行申请、使用和释放,减少了内存损耗,提升了资源利用率。

服务层(核心层)

该层是MySQL的核心,包括很多重要的服务。分别有:

  • 管理服务和工具组件:系统管理和控制工具,例如备份恢复、MySQL复制、集群等 ;

  • SQL接口组件:接受用户的SQL命令,并且返回用户需要查询的结果;

  • 查询分析器组件:SQL命令传递到解析器的时候会被解析器验证和解析(权限、语法结构)

  • 优化

最后

以上就是尊敬斑马为你收集整理的【MySQL】--架构简介MySQL介绍区分数据库、数据库实例、数据库服务器MySQL架构一个查询流程图的全部内容,希望文章能够帮你解决【MySQL】--架构简介MySQL介绍区分数据库、数据库实例、数据库服务器MySQL架构一个查询流程图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部