MySQL
常用语句
用户相关\管理相关\数据相关
视图\事件\存储过程\函数\游标\触发器
事务\分区
常用工具
管理优化
锁问题
MySQL日志
异步复制
半同步复制
复制管理
5.7开启并行复制
双主备份
故障问题
索引
时区
mysql_random_data_load 数据生成
表的导出导入
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; #排他锁
分享到: