MySQL Update зависает - время превышено - PullRequest
0 голосов
/ 22 октября 2018

Здравствуйте, у меня проблемы с запуском базы данных MySQL.MySQL UPDATE запрос зависает с ошибкой - превышено время ожидания блокировки;попробуйте перезапустить транзакцию.Я знаю, что подобные вопросы уже были подняты, но не смог найти никакого рабочего решения.Я использую этот запрос внутри сценария PHP.Но когда я запускаю его на сервере MySQL, он делает то же самое.Когда я убиваю процесс, он завершается.Вот что висит.PS: это началось как 2 дня назад, до этого запрос выполнялся без проблем.Временная таблица заполняется только тогда, когда администратор отправляет туда данные из HTML-формы.Таблица 'Teams to esc' увеличивается на 20 строк в день.

Запрос ОБНОВЛЕНИЯ -

UPDATE escalations.teams_to_esc 
JOIN domguard.temp_table ON escalations.teams_to_esc.ticket_number = domguard.temp_table.task_number 
AND 
escalations.teams_to_esc.team = domguard.temp_table.team
SET 
escalations.teams_to_esc.`status` = domguard.temp_table.`status`, 
escalations.teams_to_esc.`wiw_assigned` = domguard.temp_table.`person` 
WHERE 
(escalations.teams_to_esc.team,escalations.teams_to_esc.ticket_number) IN 
(SELECT domguard.temp_table.team, domguard.temp_table.task_number 
FROM domguard.temp_table);

Первая таблица - таблица_таблиц

CREATE TABLE `temp_table` (
    `ID` INT(32) NOT NULL AUTO_INCREMENT,
    `task_number` INT(10) NULL DEFAULT '0',
    `type` VARCHAR(50) NULL DEFAULT '0',
    `assign_date` DATE NULL DEFAULT NULL,
    `team` VARCHAR(50) NULL DEFAULT NULL,
    `person` VARCHAR(50) NULL DEFAULT NULL,
    `task` VARCHAR(50) NULL DEFAULT NULL,
    `comment` TEXT NULL,
    `short_text` VARCHAR(500) NULL DEFAULT NULL,
    `delay_comment` VARCHAR(500) NULL DEFAULT NULL,
    `color` VARCHAR(500) NULL DEFAULT NULL,
    `status` VARCHAR(500) NULL DEFAULT NULL,
    `end_time` TIME NULL DEFAULT NULL,
    `tel_it` INT(2) NULL DEFAULT '0',
    `co_allocation` VARCHAR(500) NULL DEFAULT '0',
    `co_allocation_text` VARCHAR(500) NULL DEFAULT '0',
    `delay_code_text` VARCHAR(500) NULL DEFAULT '0',
    PRIMARY KEY (`ID`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2483
;

Вторая таблица

CREATE TABLE `teams_to_esc` (
    `ID` INT(11) NOT NULL AUTO_INCREMENT,
    `esc` INT(11) NOT NULL,
    `team` VARCHAR(500) NOT NULL,
    `ticket_number` VARCHAR(500) NOT NULL,
    `closed_time` DATE NOT NULL,
    `checked` VARCHAR(500) NULL DEFAULT NULL,
    `reaction_from_tl` VARCHAR(50) NULL DEFAULT NULL,
    `status` VARCHAR(50) NULL DEFAULT NULL,
    `wiw_assigned` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY (`ID`),
    INDEX `esc` (`esc`),
    CONSTRAINT `teams_to_esc_ibfk_1` FOREIGN KEY (`esc`) REFERENCES `main_table` (`ID`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2670
;

=== ИССЛЕДОВАНИЕ ОШИБОК ===

Вывод из списка процессов SHOW;

17107338    root    localhost   \N  Query   1278    Sending data    UPDATE escalations.teams_to_esc JOIN domguard.temp_table ON 
escalations.teams_to_esc.ticket_number

Вывод из настроек транзакции

SELECT @@GLOBAL.tx_isolation, @@tx_isolation, @@session.tx_isolation;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...