Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Если я выполняю такой запрос(оба подзапроса из одной и той же таблицы):
select 1,a,b,c from table1 where ...
union (union all)
select 2,sum(a),sum(b),sum(c) from table1 where ...
Вопрос - MySql залочит таблицу table1 на чтение, выполнит оба подзапроса и только потом разлочит ее. Или же MySql сначала залочит таблицу table1 на чтение, выполнит первый подзапрос, затем разлочит таблицу table1, потом снова ее залочит для второго подзапроса и после разлочит? Т.е. между первым и вторым подзапросами смогут ли другие клиенты делать изменения в таблице table1?
или выполняю такой запрос(подзапросы из разных таблиц):
select 1,a,b,c from table1 where ...
union (union all)
select 2,a,b,c from table2 where ...
Вопрос - MySql сразу залочит обе таблицы table1 и table2 на чтение, выполнит оба подзапроса и только потом разлочит таблицы. Или же MySql сначала залочит таблицу table1 на чтение, выполнит первый подзапрос, затем разлочит таблицу table1, потом залочит table2 на чтение для второго подзапроса и после разлочит table2?
Спасибо Большое!
Неактивен
Забыл добавить про тип таблиц - MyIsam
Неактивен
По идее, MySQL сразу посмотрит, какие нужны таблицы, и их залочит (т.е. одновременно, все вместе, независимо от следования в запросе).
Неактивен