查看innodb的事务表INNODB_TRX是否有正在锁定的事务线程
SELECT * FROM information_schema.INNODB_TRX;
如果ID存在于show full processlist里面的sleep线程中,需要手动删除线程
手动删除线程:
KILL 616694;
然后查看当前数据库的线程情况:
SHOW FULL PROCESSLIST;
查看设置数据库隔离级别:
SELECT @@tx_isolation;
SELECT @@global.tx_isolation;
SELECT @@session.tx_isolation;
隔离级别:
1)read uncommitted : 读取尚未提交的数据 :哪个问题都不能解决
2)read committed:读取已经提交的数据 :可以解决脏读 ---- oracle默认的
3)repeatable read:重读读取:可以解决脏读 和 不可重复读 ---mysql默认的
4)serializable:串行化:可以解决 脏读 不可重复读 和 虚读---相当于锁表
set tx_isolation='read-committed';
show engine innodb status