mysql中的读写锁

mysql中的读写锁_第1张图片
读锁

注意:Session2在session1释放读锁的时候任然可以为该表加读锁(不可加写锁)

mysql中的读写锁_第2张图片
写锁

innodb和mysaim的区别
1.mysaim引擎用的是表锁,表锁的一些状态查询:

show status like 'table_lock%'

说明:

Table_locks_immediate:表示可以立即获取锁的查询次数,每获取一次锁就增加1
Table_locks_waited:锁等待的次数
2.innodb引擎用的是行级锁,支持事务,开销大,加锁慢,会出现死锁,但是因为锁 的粒度小,所以并发情况下产生锁等待的概率就比较小,支持的并发度高。

mysql中的读写锁_第3张图片
mysql> show status like 'innodb_row_lock%'

说明:
Innodb_row_lock_current_waits :当前正在等待的数量
Innodb_row_lock_time: 从启动到现在锁定的总时长,单位是ms
Innodb_row_lock_time_avg :锁等待的平均时长
Innodb_row_lock_time_max:等待锁时间最长的一个时间
Innodb_row_lock_waits:总共的等待次数

mysql提供了mysqlslap工具可以检查死锁

你可能感兴趣的:(mysql中的读写锁)