作者:pea101 | 来源:互联网 | 2023-02-04 12:47
目录
一:总体思路
二:Mysql的结构
1.Mysql的结构
2.各层结构的说明
(1)网络连接层:主要是 外部程序连接mysql的链接层
(2)服务层:Mysql的核心,用于处理mysql的核心业务CRUD等。
(3)存储层
(4)系统文件层
一:总体思路
在整个数据库篇,我们不会从sql方面以及数据库结构方式方面去解析,主要还是以应用为主,做一些数据库的方面的结构整合,以下包括以后都是本人的一些粗鄙的认知,如有异议,欢迎指出,主要涉及到以下几个方面的知识图谱(以mysql为主,其他的可以借鉴思路):
(1)Mysql数据库的主从复制,读写分离。
(2)Mysql数据库的分库分表的原则以及实现。
(3)应用中的多数据源以及动态数据源的配置管理。
(4)数据源的机房式访问轮询(过,目前基本没有任何使用场景)
(5)数据连接池的超时机制以及超时切换
(6)多种形式下的ACID支持
(7)数据库中间件的使用
(8)数据仓库的应用。
二:Mysql的结构
1.Mysql的结构
mysql的主要结构分为4层:网络连接,服务层,存储层以及系统文件层(如下图所示)。
2.各层结构的说明
(1)网络连接层:主要是 外部程序连接mysql的链接层
a.Connectors:连接器,各种类型应用的链接Api,即链接管理,包含了安全,用户对于库/表的操作权限等
(2)服务层:Mysql的核心,用于处理mysql的核心业务CRUD等。
a.Management Serveices & Utilities:系统管理工具,集群,主从复制,备份等
b.Connection Pool:链接池管理
b.SQL Interface:sql接口
d.Parser:解析器,解析sql为对应的数据结构,然后验证sql的正确性。
e.Optimizer:优化器,对于解析成数据结构进行优化,比如先执行条件后执行操作。
举例:select / update / insert / delete 。。。 where 。。。先执行where条件。
f.Cache和Buffer:高速缓存区,用以缓存数据
这个图层的具体作用如下图:
(3)存储层
mysql的常用的存储层的存储引擎分为以下几种:InnoDB和MyISAM以及Memory
InnoDB:mysql5.5以上默认的存储引擎,支持事物,支持行级锁,适用于OLTP应用(OLTP/OLAP应用),一般开发人员使用
最多的一种殷勤。
MyISAM:支持全文搜索,不支持事物以及表锁,适用于OLAP应用。常用于报表以及数据仓库等。
Memory:数据放入内存中,常用于临时表等
(4)系统文件层
主要是存储层存储读取文件在本地