开发者社区 问答 正文

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

已解决

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

展开
收起
提个问题 2024-06-09 17:13:15 63 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等