MySQL
常用语句
用户相关\管理相关\数据相关
视图\事件\存储过程\函数\游标\触发器
事务\分区
常用工具
管理优化
锁问题
MySQL日志
异步复制
半同步复制
复制管理
5.7开启并行复制
双主备份
故障问题
索引
时区
表的导出导入
MySQLdump逻辑备份
XtraBackup全备
XtraBackup增备
XtraBackup原表数据恢复
安装MySQL
ProxySQL中间件
Atlas中间件
keepalived安装
MHA安装
MHA恢复
mha复制检查报错及解决过程
集群Cluster安装
维护Cluster
开启审计功能
本文档使用MrDoc发布
返回首页
-
+
锁问题
2020年4月25日 13:37
admin
#锁分类 >####表级锁 开销小,加锁快,不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。 >####行级锁 开销大,加锁慢,会出现死锁,锁定粒度最小,发生锁冲突的概率最低,并发度最高。 >####页面锁 开销和加锁时间介于表锁和行锁之间,会出现死锁,锁定粒度介于表锁和行锁之间,并发度一般。 #查询锁争用情况 #查询是否有锁表 show open tables where in_use>0; #表锁定 show status like 'table_lock%'; Table_locks_immediate #立即释放表锁数 Table_locks_waited #需要等待的表锁数 ------------------------------------------------------------- #innodb行锁定 show status like 'InnoDB_row_lock%'; Innodb_row_lock_current_waits 当前正在等待锁定的数量 单位毫秒 Innodb_row_lock_time 从系统启动到现在锁定总时间长度 单位毫秒 Innodb_row_lock_time_avg 每次等待所花平均时间 单位毫秒 Innodb_row_lock_time_max 从系统启动到现在等待最长的一次所花时间 单位毫秒 Innodb_row_lock_waits 系统启动后到现在总共等待的次数 #加锁与解锁 #表锁定 lock tables <表名> read; #加读锁 lock tables <表名> write; #加写锁 unlock tables; #解锁 ------------------------------------------------------------- #innodb行锁定 select * from <表名> where <条件> lock in share mode; #共享锁 select * from <表名> where <条件> for update; #排他锁
分享到: