MySQL慢查询日志错误?记录快速查询

时间:2018-03-23 08:45:14

标签: mysql performance mysql-slow-query-log

我已经将MySQL慢速查询日志设置为默认值:

slow-query-log = 1
slow-query-log-file = /var/lib/mysql/mysql-slow.log
long_query_time = 1

当我查看输出时,我注意到它记录了这个查询:

# Time: 180323  9:08:17
# User@Host: db_sys[db_sys] @ localhost []
# Thread_id: 129753  Schema: pace-data  QC_hit: No
# Query_time: 1.193407  Lock_time: 0.000040  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 10
SET timestamp=1521792497;
REPLACE INTO `core_model_img` (`id_img`) VALUES ('848'), ('287'), ('311'), ('288'), ('289'), ('290'), ('291'), ('94'), ('292'), ('294');

在1列表中插入(或替换)10行(列被索引)。当我自己运行查询时,需要60ms。是的,有时候是65毫秒,但绝对不会接近1.194307秒。

另一个奇怪的是,查询似乎以某个奇数间隔(UTC时间)返回:1:38:17,2:08:17,2:38:17,5:08:17,5:38: 17,6:08:17,6:38:17,8:38:17这是在夜间,而没有真正的用户活动发生。

查询可以由某人或某人(它是一个Web服务器)间接调用,所以这可以解释,但是:困扰我的主要问题是查询时间。我无法找出它为什么记录此查询。这可能是个错误吗?

(来自评论)

CREATE TABLE `core_model_img` (
    `id_img` int(11) NOT NULL, 
    UNIQUE KEY `id_img` (`id_img`), 
    CONSTRAINT `core_model_img_ibfk_1` FOREIGN KEY (`id_img`)
               REFERENCES `lib_img` (`id`)
               ON DELETE CASCADE
               ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 个答案:

答案 0 :(得分:0)

REPLACEDELETEINSERT的组合。

我想知道DELETE级联才知道INSERT是否相同?在这种情况下,我担心REPLACEFOREIGN KEYs不兼容。

REPLACE更改为INSERT IGNORE