mysql知识体系的整理

mysql知识体系整理

前边我们讲了mysql的事务和锁,还讲了mysql中的redolog和undolog,今天我来讲一下mysql的优化,和架构分层。
mysql的架构分层

大家都知道,mysql分为连接层,解析层,数据层,对吧!
连接层包含了:
在这里插入图片描述
解析层包含了:
在这里插入图片描述
数据层包含了:
在这里插入图片描述
对于MySQL来说,虽然经历了多个版本迭代(MySQL5.5,MySQL 5.6,MySQL 5.7,MySQL 8),但每次的迭代,都是基于MySQL基架的,MySQL基架大致包括如下
几大模块组件:
(1)MySQL向外提供的交互接口(Connectors)
(2)管理服务组件和工具组件(Management Service & Utilities)
(3)连接池组件(Connection Pool)
(4)SQL接口组件(SQL Interface)
(5)查询分析器组件(Parser)
(6)优化器组件(Optimizer)
(7)缓存主件(Caches & Buffers)
(8)插件式存储引擎(Pluggable Storage Engines)
(9)物理文件(File System)

Mysql体系架构图


mysql的架构,我们大概知道就行了。
接下来我们说说mysql的里边的存储引擎吧!

mysql存储引擎

mysql引擎有下列几种:

1、CSV:主要用户导入导出数据,文件格式.csv,因为可随意通过修改文件从而修改数据库数据,所以安全性很低。
2、Archive :压缩数据格式的数据引擎,数据格式.arz, 支持持insert,select 不支持事务,用于数据备份。
3、Memory|heap:数据存储在内存中,大小限制只有16M,主要用于临时表,如果数据大于16M则使用Misam作为临时表。
4、Myisam:Mysql 5.5以前的默认存储引擎,不支持事务,锁为表级锁,非聚簇索引。
5、INNODB:Mysql默认存储引擎,支持事务,行级锁,聚集索引,支持外键。

我们在项目中,经常使用到的引擎是Innodb 和Myisam这两种引擎。

Innodb引擎和Myisam区别

1、索引机制的相不同
Innodb是聚合索引 ,Myisam是非聚合索引。
2、锁机制的不同
Myisam只支持表锁,Innodb支持表锁,行锁,间隙锁等。
3、事务机制不同
Myisam不支持事务,Innodb支持事务。

聚集索引的理解
聚集(clustered)索引,也叫聚簇索引。

  数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。

在这里插入图片描述
地址 id username score
0x01 1 小明 90
0x02 2 小红 80
0x03 3 小华 92
… … … …
0xff 256 小英 70

第一列的地址表示该行数据在磁盘中的物理地址,后面三列才是我们SQL里面用的表里的列,其中id是主键,建立了聚集索引。

然后就能理解为:数据行的物理顺序与列值的顺序相同,如果我们查询id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后。而且由于物理排列方式与聚集索引的顺序相同,所以也就只能建立一个聚集索引了。

在这里插入图片描述
上图就是一个聚集索引存放的示意图
1.创建表的时候指定主键(注意:SQL Sever默认主键为聚集索引,也可以指定为非聚集索引,而MySQL里主键就是聚集索引)

create table t1(
    id int primary key,
    name nvarchar(255)
)

创建聚集索引
create clustered index clustered_index on table_name(colum_name)

今天,就暂时说到这里,等有时间了,再来补充!!

### MySQL知识体系结构 MySQL 是一种广泛使用的开源关系型数据库管理系统 (RDBMS),其知识体系涵盖了基础概念、高级应用以及性能优化等多个方面。以下是 MySQL 的主要知识体系结构: #### 1. **基础知识** - 数据库基本概念:包括什么是数据库、为什么要使用数据库及其分类[^1]。 - 数据库的基本组成:服务器、数据库、表之间的关系[^1]。 - 数据存储逻辑:如何设计和组织数据。 #### 2. **MySQL 安装与配置** - 如何安装 MySQL 及验证后端服务是否正常运行。 - 配置文件 `my.cnf` 的作用及多实例共享同一套程序的实现方式[^3]。 ```bash # 查看 pid 文件位置 show variables like 'pid_file'; ``` #### 3. **SQL 语法与操作** - SQL 语句分类:DDL(数据定义语言)、DML(数据操纵语言)、DCL(数据控制语言)等[^1]。 - 基本查询、更新、删除操作。 - 复杂查询技术,如联结(JOIN)、子查询、聚合函数的应用。 #### 4. **MySQL 架构分析** - MySQL 的整体架构解析,包括客户端/服务器模型、线程池机制等[^1]。 - 不同组件的功能划分,例如连接器、查询缓存、解析器、执行器等。 #### 5. **存储引擎** - 主要存储引擎介绍:InnoDB 和 MyISAM 的特点对比[^2]。 - 日志系统工作原理:Redo Log、Undo Log、Binlog 等的作用[^7]。 #### 6. **索引与性能调优** - B+树索引的工作原理及适用场景。 - 查询优化技巧:EXPLAIN 工具的使用方法。 - 缓存策略与内存管理。 #### 7. **高可用性和分布式部署** - 主从复制(Master-Slave Replication)的设计思路及实践[^8]。 - Galera Cluster 或其他集群解决方案简介。 - 分布式事务处理方案。 --- ### 学习路径建议 为了高效掌握 MySQL 技能,可以按照以下顺序逐步深入学习: #### 初级阶段 - 掌握数据库的基础理论,理解 RDBMS 的核心功能。 - 练习简单的增删改查命令,熟悉常用的数据类型和约束条件。 #### 中级阶段 - 深入研究 SQL 调优原则,学会利用 EXPLAIN 解析复杂查询计划。 - 实践不同存储引擎的选择依据,并测试它们在实际项目中的表现差异[^2]。 #### 高级阶段 - 设计大规模系统的数据库分片策略,解决单机瓶颈问题。 - 学习并实施主从同步或其他形式的冗余备份措施来提升可靠性[^9]。 --- ### 数据库管理要点 有效的数据库管理对于保障业务连续性和安全性至关重要。具体来说应关注以下几个方面: - 用户权限分配合理化,防止敏感信息泄露; - 定期维护物理磁盘上的碎片整理作业以提高读写效率; - 创建合理的日志记录制度以便于事后追踪异常行为; 通过以上三个维度的学习规划,能够帮助初学者构建完整的 MySQL 认知框架,同时也为未来成为资深 DBA 打下坚实基础。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值