mysql锁机制

手动增加表锁

lock table 表名字 read(write),表名字2 read(write),其他;

查看表上加过的锁

show open tables;


解锁

unlock tables

MyISAM在执行查询语句前,会自动给涉及的所有表加上读锁,在执行增删改前会给涉及的所有表加上写锁。

show STATUS like 'table%'


查看事务隔离级别

SHOW VARIABLES LIKE ‘tx_isolation’

自动提交

set autocommit=0或1;


字段b是varchar类型,现在索引失效了,因为查询时没有用引号,导致行锁变表锁!

间隙锁的危害:


a in(1,6)这个区间都被锁了,a=2在这个区间内,session2的插入阻塞了!


查看锁的争夺情况

SHOW STATUS LIKE 'innodb_row_lock%'

行锁的优化建议:

1.尽可能让所有的数据检索都是用索引,避免无索引导致行锁升级为表锁。

2.尽量缩小查询范围,避免间隙锁的范围。

3.尽量控制事务大小,缩减事务时间,减少锁定资源量

4.尽可能低级别事务隔离




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值