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体系结构的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段