# 删除数据 delete

# 删除单条数据

delete from `user` where user_code="no1"

删除数据需要where条件限制,可以删除一条或者多条数据

# 删除全表数据

delete from `user`

当删除数据不加where条件的时候,那么将删除全表数据

# 清空全表数据

truncate table user

truncate也是删除全表数据,它delete之间有一些区别

  • delete只是删除数据,自增id还在,truncate则是清空表,自增id也没有
  • delete会产生binlog,如果误删除了可以通过binlog找回部分数据
  • 如果表内数据量比较多,那么delete可能特别慢,甚至造成性能问题,比如主从同步延迟、网络开销太大、占完服务器io等问题, 而trunctate并不会造成这个问题