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/