MySQL Создать таблицу как SELECT
Каждый раз, когда я использую MySQLCREATE 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 во время вышеупомянутого запроса будет ждать завершения вышеупомянутого запроса первым. Я хочу избежать этой блокировки, так как меня не интересуют наиболее полные данные в созданной временной таблице.
постскриптумSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
не дает никаких изменений в поведении.