没有合适的资源?快使用搜索试试~ 我知道了~
MySQL数据库-事务、锁及SQL优化
需积分: 46 1 下载量 138 浏览量
2022-08-25
16:57:07
上传
评论
收藏 173KB DOCX 举报
温馨提示
试读
10页
MySQL数据库-事务、锁及SQL优化
资源推荐
资源详情
资源评论
MySQL 数据库
1. 事务隔离及异常
可以通过 set GLOBAL/SESSION TRANSACTION LEVEL 语句设置事务隔离级别
可以通过 show variables like ‘transaction_isolation’查看当前的事务隔离级别
常见的事务隔离级别及其异常如下表所示:
事务隔离级别
异常
未提交读(READ-UNCOMMITTED)
脏读:读取未提交事务的脏数据
已提交读(READ-COMMITTED)
不可重复读: 两次执行相同的查询,由于另一个事务
对记录做了修改,导致读取数据不一致
可重复读(REPEATABLE-READ)
幻读:两次查询相同范围的数据,由于另一个事务在
插入了新的记录,导致两次查询的结果不一致
序列化(SERIALIZABLE)
2. 数据库锁
2.1 数据库锁分类
按颗粒度可分为行锁和表锁,行锁有:
a. 共享锁(S)及排它锁(X)
mysql 中默认查询不加任何锁控制,可以在查询时使用 for share 或 for update 分别添
加共享锁及排它锁
b. 记录锁(RED_NOT_GAP)
MySQL 中记录锁添加在索引上,及时 MySQL 中没有索引,记录锁也会添加在默认创建
的剧集索引上
c. 间隙锁(GAP)
在 MySQL 索引的某一范围添加间隙锁
d. 记录锁与间隙锁的组合(Next-Key Lock)
e. 插入意向锁
在插入时,在某一范围的间隙锁上添加插入意向锁,提高并发插入的性能
表锁有:
a. 意向锁(IS 或 IX)
原来在对表进行加锁时,需要检查每行记录的锁情况,有了意向锁,若表存在意向锁时
表示有加锁意向或者锁已存在,提高了加锁的效率
b. 自增锁
在表中存在自增主键时,为了确保自增主键连续性,并发的插入会顺序执行
资源评论
眉山剑客
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功