标签:带来 释放 分类 innodb 其他 事务处理 没有 问题 isa
一、概述
1、定义

2、锁的分类
①从对数据操作的类型(读\写)分
读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。
写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。
②从对数据操作的粒度分
表锁
行锁
二、三锁
1、表锁(偏读)
特点:偏向MyISM存储引擎,开销小,加锁块;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
案例分析:
建表:

手动增加表锁:

手动释放表:
unlock tables;
查看表状态命令:
show open tables;
过程:







结论:


表锁分析:

2、行锁(偏写)
特点:
偏向InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率最低,并发度最高。
InnoDB与MyISAM最大不不同有两点,一是支持事务,二是采用了行级锁。
由于行锁支持事物:
事务(Transaction)及其ACID属性:

并发事务处理带来的问题:
更新丢失(Lost Update):

脏读(Dirty Reads):

不可重复读(Non-Repeatable):

幻读(Phantom Reads):

事务的隔离级别:

间隙锁:

如何锁定一行:

结论:

行锁总结:


优化建议:

3、页锁

标签:带来 释放 分类 innodb 其他 事务处理 没有 问题 isa
原文地址:http://www.cnblogs.com/zhaobingqing/p/7074821.html