开发者社区> 问答> 正文

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

已解决

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

展开
收起
提个问题 2024-06-09 17:13:15 45 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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
TcpRT:阿里云RDS智能诊断系统云上大规模部署自动化服务的客户实践经验 立即下载
TcpRT:面向大规模海量云数据库的服务质量实时采集与诊断系 立即下载
袋鼠云基于阿里云RDS的数据库架构实践 立即下载

相关镜像