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';开启此项影响性能,记得用后关闭。