开发者社区> 问答> 正文

RDS MySQL中TRUNCATE与DELETE清除数据有什么区别

已解决

RDS MySQL中TRUNCATE与DELETE清除数据有什么区别

展开
收起
提个问题 2024-06-09 17:13:15 8 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答

    TRUNCATE与DELETE有如下区别:
     1、TRUNCATE属于DDL,不支持Rollback回滚;DELETE属于DML,支持Rollback回滚。
    2、TRUNCATE无需要将一条条记录在事务日志中,清理速度很快;DELETE需要将一条条记录在事务日志中,清理速度很慢。
    3、TRUNCATE使用会降低表中的High WaterMark(高水位线),使用TRUNCATE清除数据之后,查询速度会大幅提升;DELETE使用则不会降低表中的High WaterMark(高水位线),使用DELETE清除数据之后,查询速度不会提升。
    4、TRUNCATE属于整表清理不支持WHERE条件查询;DELETE支持WHERE条件查询。
    5、TRUNCATE仅支持清除表;DELETE可以支持清除表数据和视图(View)。

    TRUNCATE与DROP命令相似,都属于高危操作,请谨慎使用此命令,建议操作前先做好数据库备份。

    2024-06-09 17:13:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像