Если я выполню ниже sql, будет ли mysql блокировать полную таблицу (запись не может быть выполнена до завершения операции ниже)?на мой взгляд, да, так как он должен изменить все строки и добавить значения по умолчанию.Однако эта операция заняла всего 4 секунды на таблице с 1 миллионом строк.
ALTER TABLE `user` ADD COLUMN `col1` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1;
Однако, когда я попытался разбить операцию на 2 отдельных запроса (пытаясь сократить время блокировки таблицы из-за моего неполного понимания), второй запрос выполнялся более 100 секунд
ALTER TABLE `user` ADD COLUMN `col1` TINYINT(1) UNSIGNED; // happens instantly
UPDATE user set col1 = true ; // takes > 100 seconds
Итак, я хотел знать, почему такая большая разница во времени выполнения, когда конечный результат одинаков.