Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理

Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第1张图片

1架构 :如何设计一个关系性数据库呢?尽可能减少I/O

Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第2张图片
Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第3张图片
Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第4张图片

2索引 --问题与思考

Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第5张图片
Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第6张图片

3锁模块 --问题与思考

Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第7张图片

1 MyISAM 与InnoDB关于锁方面的区别是什么?

Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第8张图片

注意MyISAM存储引擎分析如下:表级锁

MyISAM对 select 查询的时候会加上表级别的读锁,update,delete,insert的时候会加上表级别的写锁,两个select就是两个读锁,上了两个共享锁

上锁

lock tables 你的表名  read/write

释放锁

unlock tables ;

MyISAM 先写后读,先写后写 会block 写锁也叫排他锁

在这里插入图片描述

MyISAM Select 也有排他锁

在这里插入图片描述

InnoDB使用二段锁:加锁和解锁分为两个步骤,autocommit设置有关

Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第9张图片

上读锁
在这里插入图片描述

InnoDB对select 进行了改进

结论1:Innodb在没有用到索引的时候,用的是表级锁 IS IX

结论2:Innodb在用到索引的时候,用的是行级锁/Gap锁

表级别锁直接在表的头部加上锁,所以锁的开销会比较小,行级锁需要扫描到表的该行去上锁。
Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第10张图片
Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第11张图片

Mysql面试复习大纲 --架构,索引,锁,语法,理论范式,日志管理_第12张图片

4关键语法 – 复杂SQL常出的Group by 和 Having

5理论范式:SQL相关的经典书籍

你可能感兴趣的:(MYSQL,Mysql面试题)