MySQL高级-锁机制
一、概述
1、定义
2、锁的分类
①从对数据操作的类型(读\写)分
读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。
写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。
②从对数据操作的粒度分
表锁
行锁
二、三锁
1、表锁(偏读)
特点:偏向MyISM存储引擎,开销小,加锁块;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
案例分析:
建表:
手动增加表锁:
手动释放表:
unlock tables;
查看表状态命令:
show open tables;
过程:
结论:
表锁分析:
2、行锁(偏写)
特点:
偏向InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率最低,并发度最高。
InnoDB与MyISAM最大不不同有两点,一是支持事务,二是采用了行级锁。
由于行锁支持事物:
事务(Transaction)及其ACID属性:
并发事务处理带来的问题:
更新丢失(Lost Update):
脏读(Dirty Reads):
不可重复读(Non-Repeatable):
幻读(Phantom Reads):
事务的隔离级别:
间隙锁:
如何锁定一行:
结论:
行锁总结:
优化建议:
3、页锁
最新文章
- [deviceone开发]-毛玻璃效果示例
- lwfs指定特定目录输出
- string.Format之你不知道的事
- CentOS 设置网络(修改IP&;修改网关&;修改DNS)--update.14.08.15
- TMS320C54x系列DSP的CPU与外设——第2章 TMS320C54x DSP体系结构总体介绍
- django_auth_ldap
- createElement、createTextNode、setAttribute使用方法
- 用python把一个txt文件中所有逗号,替换成空格?
- java集合-HashMap源码解析
- 【基础练习】【区间DP】codevs1090 加分二叉树题解
- MYSQL与MSSQL对比学习
- 「Vue」Vue cli3中引用mui-ui问题及解决办法
- OpenGL笔记<;5>; shader 调试信息获取 Debug
- iOS-APP启动页加载广告
- SqlMapConfig.xml中的setting属性 Ibatis mybatis
- yum安装软件所在目录的查询
- C/C++中一些不太注意到的小知识点--[锦集]
- R简易安装
- jsp tag 直接文件实现
- 理解Javascript_01_理解内存分配