开发者学堂课程【MySQL 高级应用 - 索引和锁:MySQL 逻辑架构简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/598/detail/8585
MySQL 逻辑架构简介
内容介绍
一、MySQL 逻辑架构组成
一、MySQL 逻辑架构组成
和其它数据库相比,MySQL 有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储祝取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。
分层的好处,哪一层出问题就可以针对找哪一层的问题。
1.连接层
图表中的第一层则是连接层 nativeC API、JDBC、ODBC、net、php、perl、python、ruby、caches
是最上层是一些客户端的链接服务,包含本地 sock 通信大多数基于客户端/服务端工具实现的类似于 tcp/ip 的通讯。主要完成一些类似于链接处理、授权认证、及相关的安全方案。应该层上引入线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于ssl的安全链接,服务器也会为安全接入的每个客户端验证它所具有的操作权限。
2. 业务逻辑处理层
MySQL Server 里面有哪些模块,比如电商平台可能涉及到的模块有用户模块、订单模块、仓储模块、物流模块、积分模块等,模块与模块之间是不是 rpc、rmn、double 相关的调用。
Management services & utilities 备份、容灾恢复、安全、复制、集群等
SQL interface 存储过程示图触发器
Parser 解析转化,查询事物兑现的权限
Optimizer Mysql 优化器,可通过前面接口,可进行转写转化。mysql 优化成 mysql 认为最优去运行,而不是程序员认为最优的运行。
Caches&buffers 缓存和缓冲的功能
第二层架构主要完成大多少的核心服务功能,如 SQL 接口,并完成缓存的查询,SQL 的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。如果是 select 语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。
3. 引擎层
Pluggabie storage engines 可拔插组建式的存储引擎
主要使用的就是 myisam 以及 innoDB
数据存储引擎层,存储引擎真正的负责 MySQL 中数据的存储和提取,服务器通过API 与存储引擎进行通信。不同的存储引擎具有的功能不同,这样可以根据自己的实际需要进行选取。搭建集群的时候,最好要选择同样的引擎、版本一致。
mysql 支持多种数据库的 storage engines,后面介绍 MyISAM 和 InnoDB
4. 文件存储层
File system 是硬盘存储
文件存储的目的:
(1)对 sql 的分层设计概念有理解
(2)mysql 是插件式的可拔插结构,程序不可写死
(3)哪一层出问题,处理哪一层的问题
数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。
