이 쿼리는 mysql slow query log에 표시됩니다. 11 초가 걸립니다.왜이 쿼리가 너무 느린가요?
INSERT INTO record_visits
(record_id, visit_day)
VALUES
('567', NOW());
표는 501,043 기록을 가지고 있으며 구조는 다음과 같습니다이다 :
CREATE TABLE IF NOT EXISTS `record_visits` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`record_id` int(11) DEFAULT NULL,
`visit_day` date DEFAULT NULL,
`visit_cnt` bigint(20) DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `record_id_visit_day` (`record_id`,`visit_day`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
은 무엇 잘못 될 수 있을까? 왜이 INSERT가 오래 걸리나요?
UPDATE
나는 모든 문제의 원인이 무엇인지, 발견했다. 해당 테이블에 매우 많은 "INSERT"트리거가 생성되었습니다. MyISAM 테이블 잠금과 함께, INSERT 쿼리를위한 엄청난 쿼리 시간을 가져 왔습니다. 아마 이런 이유로 @Oswald가이 상황을 재현 할 수 없었습니다.
실제 문제는 MySQL이 트리거 내부에서 쿼리를 기록하지 않으며 응용 프로그램을 프로파일 링 할 때 항상 기억해야한다는 것입니다.
도움을 주셔서 감사합니다. 모두에게 해결책을 제시하는 답변을 수락합니다.
MySQL 서버 도움말을 다시 시작 하시겠습니까? –
아마도 UNIQUE 색인 때문일 것입니다. 그러나 그렇게 천천히해서는 안됩니다. – alexn
@Time 컴퓨터 아니요, 다시 시작한 후에도 여전히 동일합니다. –