首先这三个命令都能删除表数据。
1.delete 命令后面可以带where条件删除行数据,且delete能够触发trigger操作。delete是DML(数据库操作语言),在像innodb这种事务型引擎里,在事务里需要等到事务提交后delete命令才能生效,且可以回滚。
2.truncate是DDL(数据库定义语言),删除整个表数据,后面不能带where条件,且不能触发trigger,且不能回滚。
3.drop也是DDL,不仅删除表数据且删除表结构,不能触发trigger,且不能回滚。
对于速度:
drop>truncate>delete