Блокировка таблицы на время UPDATE

Имеется таблица innoDB с 20 млн записями.

CREATE TABLE t1(
    `id` INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
    `name` TEXT NULL DEFAULT NULL,
    `type` INT(10) UNSIGNED NOT NULL DEFAULT '0'
    ...
    PRIMARY KEY (`id`) USING BTREE,
    INDEX (`type`) USING BTREE,
) ENGINE=InnoDB;

При длительных запросах на обновление данных, например

UPDATE t1 SET ... WHERE type=2;

другие клиенты имеют доступ на чтение из таблицы, но другие запросы, которые изменяют таблицу выстраиваются в очередь ожидания.

Это происходит потому, что запускается неявная транзакция связанная с длительным запросом UPDATE или имеет место блокировка таблицы?

Можно ли во время работы длительного запроса UPDATE разрешить другим пользователям изменять таблицу не дожидаясь завершения того длительного запроса?


Ответы (0 шт):