In the above example you gave, `DELETE` is part of [DML (Data Manipulation Language)][1]. For the default transaction isolation level of REPEATABLE READ, all the rows in the `t1` table are made available in the rollback segments ([See the Rollback Segments and Undo Space][2]) so that the count query can have point-in-time snapshot of the rows to count. `DROP DATABASE` is [**DDL (Data Definition Language)**][3] not DML. There are no MySQL mechanisms in place for rolling back `DROP DATABASE;`. In fact, the mechanisms are centered around the OS. During a `DROP DATABASE` operation, you will see [`Checking permissions...`][4] in the processlist to verify file permissions on each table before deleting files (`.frm`s + other storage-engine related files). The database will experience [a lot of MUTEX calls on every table in the database][5]. During that period, none of the table are available. [1]: http://en.wikipedia.org/wiki/Data_manipulation_language [2]: http://www.scribd.com/doc/31337494/XtraDB-InnoDB-internals-in-drawing [3]: http://en.wikipedia.org/wiki/Data_Definition_Language [4]: http://dba.stackexchange.com/a/12216/877 [5]: http://www.mysqlperformanceblog.com/2009/06/16/slow-drop-table/