ALTER TABLE без блокировки таблицы?

Percona создает инструмент alter-table под названием pt-online-schema-change, который позволяет sqlselect это делать.

По сути, он делает mysqlclient копию таблицы и изменяет mysql-query новую таблицу. Чтобы синхронизировать mysql-server новую таблицу с исходной, она mysqldump использует триггеры для обновления. Это mysql-query позволяет получить доступ mysql-server к исходной таблице, пока mysql новая таблица готовится в sql-statement фоновом режиме.

Это похоже sql-select на метод, предложенный Демсом mysql-query выше, но выполняется автоматически.

Некоторым sql из их инструментов нужно ddl научиться, а именно подключаться sql-select к базе данных, но как только sqlselect вы это сделаете, они станут sql-statement отличными инструментами.

Пример:

pt-online-schema-change --alter "ADD COLUMN c1 INT" D=db,t=numbers_are_friends

sql

mysql

ddl

alter-table

2022-10-05T22:36:00+00:00