Каждый раз, когда я использую MySQL CREATE TABLE AS SELECT ...
, все выбранные таблицы/индексы блокируются в течение продолжительности запроса. Я действительно не понимаю, почему? Есть ли способ обойти это?
Использование: MySQL 5.1.41
и InnoDB
Добавленный пример:
Например, следующий запрос может занять до 10 минут:
CREATE TABLE temp_lots_of_data_xxx AS
SELECT
a.*
b.*
c.*
FROM a
LEFT JOIN b ON a.foo = b.foo
LEFT JOIN c ON a.foo = c.foo
Попытка обновить значения в таблицах a, b или c во время вышеуказанного запроса будет ждать завершения первого запроса. Я хочу избежать этой блокировки, так как меня не интересуют наиболее полные данные в созданной таблице temp.
p.s. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
не приводит к изменению поведения.