Does “drop table” use the undo log (rollback segment) to temporarily store records to be purged later, the way “delete from table” does?
Drop table cannot be undone, so I expect the answer to be negative.
I don’t think it does, but I am not sure.
Since drop table is a DDL statement that:
- can’t be part of a transaction and
- can’t be undone
I would say it’s highly unlikely that it uses the undo log for anything.
There are some interesting reading in the manual for the related statement TRUNCATE TABLE (which basically is like a DROP TABLE; CREATE TABLE combination) and hence is not related to normal DML statements that can be part of a transaction and in need of the undo log.
Inside InnoDB, absolutely everything is fully ACID. The non-transactinoality of DROP and other DDL is due to the MySQL layer outside of InnoDB.