Этот запрос появляется в журнале запросов mysql slow: он занимает 11 секунд.Почему этот запрос настолько медленный?
INSERT INTO record_visits
(record_id, visit_day)
VALUES
('567', NOW());
таблица имеет 501043 записей, и это структура выглядит следующим образом:
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
я узнал, что было причиной всех бед. На этом столе был очень тяжелый триггер «ON INSERT». Вместе с блокировкой таблицы MyISAM она выдавала огромное количество запросов для запроса INSERT. Вероятно, поэтому @Oswald в комментариях не смог воспроизвести эту ситуацию.
Настоящая проблема заключается в том, что MySQL не регистрирует запросы внутри триггеров, и вы всегда должны помнить о них при профилировании своего приложения.
Благодарим вас за помощь, каждый, принимая ответ, который закрывается для решения.
Помогает ли перезагрузка службы MySQL Server? –
Возможно, из-за вашего УНИКАЛЬНОГО индекса. Но это не должно быть медленным. – alexn
@Time Machine no, после перезагрузки он остается прежним. –