Mysql体系结构

Posted 清水寺扫地僧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql体系结构相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

在这里插入图片描述
mysql的体系结构

连接层
服务层:····
存储引擎层
存储层:文件系统

四个层次

插件式的存储引擎
可以根据需求来进行替换存储引擎
	可进行替换的有:MyIsam 和 Innodb
	此外本文简单介绍下memory

补充

连接器: 管理连接, 权限认证
缓存:
分析器, 语法词法分析
优化器, 选择索引
执行器, 调用引擎来执行

存储引擎

类似于发动机
存储引擎是存储数据,建立索引,更新查询数据等技术的实现方式
基于表:同一个数据的多张表可以是不同的引擎
innodb:支持事务,行级锁,和外键

各种存储引擎

InnoDB:支持事务,行锁(适合高并发),支持外键(所有引擎中唯一)
MyISAM(5.5之前的默认):不支持事务,表锁,不支持外键

InnoDB

InnoDB默认是支持事务的隔离级别是 可重复读(RR)
子表中有外键指向了主表、
on delete restrict:删除主表时,如果有子表有外键关联,则不能删除
on update cascade:更新主表时,如果子表有关联记录,更新子表记录
存储方式:linux下默认是:/var/lib/mysql目录下
frm文件:表结构
ibd文件:数据文件和索引文件

MyISAM

不支持事务和外键
因为不支持事务,所以访问速度很快(优势)
适用于事务无要求,以及容许少量的数据丢失,可以用MyISAM
存储方式:
frm文件:表结构
MYD(MYData):存储数据
MYI(MYIndex):存储索引

Memory

只有一个frm文件
其他数据放在内存之中(有点像redis)

Merge

该引擎是一组MyISAM表的组合
对merge表增删改操作,只是对MyISAM进行的

如何选择

绝大部分都是InnoDB,安全性,一致性,必须的
MyISAM,对数据一致性无所谓,对事务的完整性也无所谓,又要求速度,所以采用这个

以上是关于Mysql体系结构的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段5——HTML元素结构

部分代码片段

linux中怎么查看mysql数据库版本

从mysql的片段中加载ListView

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

分享几个实用的代码片段(第二弹)