Podczas wykonywania instrukcji ALTER TABLE w MySQL cała tabela jest blokowana do odczytu (zezwala na równoczesne odczyty, ale zabrania współbieżnych zapisów) na czas trwania instrukcji. Jeśli jest to duża tabela, instrukcje INSERT lub UPDATE mogą zostać zablokowane na dłuuuugi czas. Czy istnieje sposób na wykonanie „gorącej zmiany”, na przykład dodanie kolumny w taki sposób, aby tabela była nadal aktualizowana w trakcie całego procesu?
Przede wszystkim jestem zainteresowany rozwiązaniem dla MySQL, ale byłbym zainteresowany innymi RDBMS, jeśli MySQL nie może tego zrobić.
Aby wyjaśnić, moim celem jest po prostu uniknięcie przestojów, gdy nowa funkcja, która wymaga dodatkowej kolumny tabeli, jest wypychana do produkcji. Każdy schemat bazy danych będzie się z czasem zmieniać, to po prostu fakt. Nie widzę powodu, dla którego mielibyśmy zaakceptować fakt, że te zmiany muszą nieuchronnie skutkować przestojami; to jest po prostu słabe.