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)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值