职场面试题总结(46)---一条select语句执行流程图、InnoDB与MyISAM功能对比、InnoDB特性、MySQL锁分类

73 阅读1分钟

1、一条select语句执行流程图

在这里插入图片描述

2、InnoDB与MyISAM功能对比

在这里插入图片描述

3、InnoDB特性

在这里插入图片描述

4、多版本并发控制原理(MVCC)

(1)InnoDB存储引擎,实现的是基于多版本的并发控制协议MVCC。

(2)MVCC最大的好处是读不加锁,读写不冲突。

(3)现阶段几乎所有的RDBMS,都支持MVCC。

(4)在MVCC并发控制中,读操作可分两类:快照读(snapshot read)与当前读(currentread)。

注意:MVCC只在READ COMMITED和REPEATABLE READ两个隔离级别下工作。

5、MySQL锁分类

表级锁

(1) 开销小,加锁快。

(2) 不会出现死锁。

(3) 粒度大,锁冲突概率最高,并发度最低。

行级锁

(1) 开销大,加锁慢。

(2) 会出现死锁。

(3) 粒度最小,锁冲突概率最低,并发度最高。

页级锁

(1) 开销和加锁时间界于表锁和行锁之间。

(2) 会出现死锁。

(3) 粒度界于表锁和行锁之间,并发度一般。 在这里插入图片描述

6、InnoDB锁分类/模式

行锁

(1)共享锁(s)。

(2)排他锁(x)。

表锁

(1)意向共享锁(IS)。

(2)意向排他锁(IX)。

(3)自增锁(AUTO-INC Locks)。

7、MySQL执行计划分析“三步曲”

第一步:查看SQL执行计划

(1)explain SQL。

(2)desc 表名;或者show create table表名\G。

第二步:通过Profile定位QUERY代价消耗

(1)set profiling=1。

(2)执行SQL。

(3)show profiles;获取Query_ID。

(4)show profile for query Query_ID;查看详细的profile信息。

第三步:SQL Optimizer Trace

(1)set session optimizer_trace='enabled=on'。

(2)执行SQL。

(3)查询information_schema.optimizer_trace表,获取SQL查询计划树。

(3)set session optimizer_trace=‘enabled=off';开启此项影响性能,记得用后关闭。

8、MySQL复制原理

在这里插入图片描述