#mysql鎖mysql
##行鎖爭奪sql
show status like 'innodb_row_lock%';
#共享鎖 SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE #排他鎖 SELECT * FROM table_name WHERE ... FOR UPDATE
##InnoDB行鎖實現方式數據庫
#關閉自動提交,2個session,查詢2行,也會衝突,第二條查詢會等待 select * from table where id = 1 for update; select * from table where id = 2 for update;
##間隙鎖(Next-Key鎖)session
Select * from emp where empid > 100 for update;
select 默認是共享鎖code
#查看自動提交0手動,1自動 select @autocommit #手動設置是否自動 set autocommit; #提交 commit; #查看mysql版本 SELECT @@version; #查看當前事務隔離級別 select @@tx_isolation; #全局事務隔離級別 select @@global.tx_isolation; #設置事務隔離級別,也用經過mysql.ini設置 SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE] #查看當前正在運行的查詢 或者等待休眠中的查詢 show processlist; #mysql5.5以後,information_schema數據庫加了三個關於鎖的表。 #innodb_trx ## 當前運行的全部事務 #innodb_locks ## 當前出現的鎖 #innodb_lock_waits ## 鎖等待的對應關係 #查看innodb引擎狀態,鎖,事務,各類信息 show engine innodb status #查看鎖等待時間,設置my.ini innodb_lock_wait_timeout值 SELECT @@innodb_lock_wait_timeout;