开发者社区 > 数据库 > 正文

您好,RDS表进行truncate后为什么查看对象信息还会有容量和行数,但是实际去查此表后表中一行?

您好,RDS表进行truncate后为什么查看对象信息还会有容量和行数,但是实际去查此表后表中一行数据都没有琨鹏?

展开
收起
真的很搞笑 2023-05-16 18:08:15 228 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云 RDS 执行 truncate 命令后,虽然表中的所有数据都会被删除,但表的空间并不会马上回收,表结构和其他元数据信息仍然存在。因此,通过查询对象信息,可以看到表的容量和行数。

    如果您通过 SQL 查询发现表中没有任何数据,则说明 truncate 命令执行成功,并且表已被清空。如果您还需要释放表的空间,可以执行 OPTIMIZE TABLE 或者 ALTER TABLE 命令来强制回收表空间。

    OPTIMIZE TABLEALTER TABLE 在执行过程中需要占用大量的磁盘空间和系统资源,建议在业务低峰期进行操作。

    2023-05-23 14:17:38
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    在RDS中,执行TRUNCATE TABLE命令会将表中的所有数据删除,并重置表的自增ID。但是,TRUNCATE TABLE命令并不会释放表所占用的磁盘空间,表的元数据信息(如表的大小和行数)也不会立即更新。这是因为RDS会将表的空间保留下来,以便后续插入数据时可以更快地执行。如果需要释放表所占用的磁盘空间,可以使用OPTIMIZE TABLE命令来进行空间回收。执行OPTIMIZE TABLE命令后,表的元数据信息也会被更新。

    2023-05-22 10:13:27
    赞同 展开评论 打赏
  • mysql删除数据后执行optimize table 清楚碎片后才会释放空间,此回答整理自钉群“阿里云DMS数据管理用户交流群”

    2023-05-16 18:14:57
    赞同 展开评论 打赏

数据库领域前沿技术分享与交流

相关产品

  • 云数据库 RDS MySQL 版
  • 相关电子书

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

    相关镜像