#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;