You can run the experiment:
In the first session:
mysql> LOCK TABLE foobar WRITE;
mysql> ALTER TABLE foobar ENGINE=MyISAM;
In the second session (i.e. open the second terminal window), do:
mysql> SHOW ENGINE INNODB STATUS\G
In the "OPERATIONS" section, you will see the current ALTER sequence:
mysql tables in use 1, locked 1
14626 lock struct(s), heap size 1898936, 5145657 row lock(s)
Whoah! This creates many separate row locks, even though LOCK TABLE is in effect.
(This is just an example; you will see that the number of row locks increases over time when ALTER TABLE works through your table.)
So, you need to guarantee space for a lot of row locks.
https://dev.mysql.com/doc/refman/5.6/en/innodb-error-codes.html says:
1206 (ER_LOCK_TABLE_FULL)
, InnoDB . , innodb_buffer_pool_size. . , INSERT, INSERT.
( )
Innodb?
Innodb , , , , , . .
, 160 60-80 . , .
InnoDB 8 MySQL 5.1.27 . 128 MySQL 5.1.28.
:
ey;) - MyISAM
MyISAM Atomicity, Consistency, Isolation Durability. , .: -)