MySQL含4行数据的小表执行UPDATE语句耗时过长的问题求助
MySQL含4行数据的小表执行UPDATE语句耗时过长的问题求助
我碰到了一个特别奇怪的问题:MySQL里有个总共只有4行数据的极小数据表,执行一条简单的UPDATE操作居然要花40到75秒之久!这太反常了——我们其他那些有几千甚至几十万条数据的表,更新操作都是毫秒级就完成的。
先给大家贴一下这个表的创建语句:
CREATE TABLE log_CacheQueueEntity ( ID int(11) NOT NULL AUTO_INCREMENT , EntityName varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL , CodingKey varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL , IsLockedForInitialization tinyint(1) NOT NULL DEFAULT 0 , InitLockPID varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL , PRIMARY KEY (ID) , UNIQUE KEY UNIQ_8396A7A382A8ABB5 (EntityName) , UNIQUE KEY UNIQ_8396A7A395B09DD2 (CodingKey) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
然后是那条慢得出奇的UPDATE查询:
UPDATE log_CacheQueueEntity SET IsLockedForInitialization = 1 , InitLockPID = '1700151964:6556429c27fac7.78065467' WHERE IsLockedForInitialization = 0 AND InitLockPID IS NULL AND CodingKey = 'SECTION';
我尝试用EXPLAIN去分析这条语句,但没得到任何有价值的线索,现在完全不知道问题出在哪,有没有经验丰富的朋友能帮忙排查下可能的原因?
备注:内容来源于stack exchange,提问作者LinuxGnut
相关产品推荐
相关产品推荐

