Skip to content

Latest commit

 

History

History
39 lines (28 loc) · 1.52 KB

01.基础概念.md

File metadata and controls

39 lines (28 loc) · 1.52 KB

一、逻辑架构

第一层
连接处理,授权认证

第二层
查询解析、分析、优化、缓存以及内置函数。还有一些跨存储引擎的功能,如存储过程、触发器、视图等。

第三层
存储引擎,负责数据的存储与提取。

二、并发控制

读写锁

读锁是共享的,互相不阻塞的。 写锁是排它的,一个写锁会阻塞其它的写锁或读锁。

锁粒度

表锁 比如Alter Table语句会使用表锁

行级锁 最大程度的并发处理。在 InnoDB中实现了行级锁。行锁只在存储引擎层实现,MySql服务器层没有实现。

三、事务

ACID 原子性、一致性、隔离性以及持久性

隔离性
通常来说(取决于事务的隔离级别),一个事务所做的修改在最终提交之前,对其它事务是不可见的。

多版本并发控制
通过保存版本号,使得大多数读才错都可以不用加锁。

注意:MVCC只在可重复读与已提交读级别下有用。Serializable 会对所有读取的行都加锁。

四、存储引擎

创建表时,Mysql 会在数据库子目录下创建一个和表同名的.frm文件保存表的定义。 例如创建一个名为MyTable的表,Mysql会在 MyTable.frm 文件中保存该表的定义。 不同存储引擎保存数据和索引的方式是不同的,但表的定义是在Mysql服务层统计处理的,跟存储引擎无关。 可以使用 show table status like 'user';(或查询 INFORMATION_SCHEMA中对应的表)显示表的相关信息。