java – MySQL InnoDB挂起等待表级锁
发布时间:2020-12-15 00:09:52 所属栏目:Java 来源:网络整理
导读:我有一个大的生产网络应用程序(Glassfish 3.1 MySQL 5.5).所有表都是InnoDB.每几天应用完全挂起. SHOW FULL PROCESSLIST显示许多简单的插入或更新查询在不同的表,但都具有状态 Waiting for table level lock 例子: update userbrset user.hasnewmessages =
我有一个大的生产网络应用程序(Glassfish 3.1
MySQL 5.5).所有表都是InnoDB.每几天应用完全挂起.
SHOW FULL PROCESSLIST显示许多简单的插入或更新查询在不同的表,但都具有状态
例子: update user<br> set user.hasnewmessages = NAME_CONST('in_flag',_binary' ' COLLATE 'binary') where user.id = NAME_CONST('in_uid',66381) insert into exchanges_itempacks set packid = NAME_CONST('in_packId',332149),type = NAME_CONST('in_type',1),itemid = NAME_CONST('in_itemId',23710872) “Time”最长的查询也正在等待表级锁. 我的my.cnf有这个: innodb_flush_log_at_trx_commit = 0 innodb_support_xa = 0 innodb_locks_unsafe_for_binlog = 1 innodb_autoinc_lock_mode=2 二进制日志已关闭.我根本没有“LOCK TABLES”或其他明确的锁定命令.交易是READ_UNCOMMITED. SHOW ENGINE INNODB STATUS输出: 解决方法
您的应用程序仍在使用MSQLDump来备份数据库吗?这可能会导致这种行为.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |