【问题标题】:Mysql update takes a long time on "end" stateMysql 更新在“结束”状态下需要很长时间
【发布时间】:2014-02-04 15:46:15
【问题描述】:

我在使用此更新查询时遇到了问题。我不明白为什么“结束”状态需要这么长时间。

奇怪的是,只有当我有一段时间没有更新表时才会发生这种情况,但在我更新之后,更新查询非常快。

我不在乎一个更新查询是否需要很长时间才能完成,但是此查询会暂停服务器中的所有其他查询(选择/插入/更新..),因此所有这些查询都必须等到该查询完成。

我通过其他讨论阅读了很多,但所有这些都是关于“查询结束”而不是“结束”状态。

这是我最新的查询,耗时超过 70 秒:

UPDATE optimizer_disabled_domains 
SET dateChanged = NOW( ) ,
 bgProcessID =18,
 profile =  '1. Default',
 creativeIDs =  '',
 excludeCreativeIDs =  '',
 emailGroupIDs =  '1',
 emailDomains =  '',
 status =1 
WHERE id =237

分析统计:

 starting => 0.000053
 checking permissions => 0.000010
 Opening tables => 0.000029
 System lock => 0.000010
 init => 0.000042
 Updating => 0.000106
 end => 0.000009
 Waiting for query cache lock => 0.000007
 *** end => 69.276521 ***
 query end => 0.000203
 closing tables => 0.000098
 freeing items => 0.000082
 logging slow query => 0.000035
 logging slow query => 0.000063
 cleaning up => 0.000033

表结构:

 CREATE TABLE IF NOT EXISTS `optimizer_disabled_domains` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `dateCreated` datetime NOT NULL,
   `dateChanged` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
   `bgProcessID` int(11) NOT NULL,
   `profile` varchar(100) NOT NULL DEFAULT '',
   `creativeIDs` varchar(255) NOT NULL DEFAULT '',
   `excludeCreativeIDs` varchar(255) NOT NULL DEFAULT '',
   `emailGroupIDs` varchar(30) NOT NULL DEFAULT '',
   `emailDomains` varchar(1000) NOT NULL DEFAULT '',
   `status` tinyint(1) NOT NULL DEFAULT '1',
   PRIMARY KEY (`id`),
   KEY `status` (`status`,`bgProcessID`,`profile`,`creativeIDs`,`excludeCreativeIDs`,`emailDomains`(255),`emailGroupIDs`)
) ENGINE=InnoDB

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    可能是 DNS 问题。在您的 mysql 配置中添加此行并重新启动

    skip-name-resolve
    

    同时检查查询缓存,如果它太大,你可能会看到一个非常大的缓存的锁争用问题。Link

    SHOW VARIABLES LIKE 'query_cache_size';
    

    【讨论】:

    • 谢谢,我试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多