mysql大批量删除存储_关于删除mysql大表数据并释放存储空间的两种方式

删除表数据我们通常会使用delete语句来删除,但是执行完delete语句删除了表中部分数据后你会发现表对应的存储文件大小并不会缩小,如果要进一步释放被删除数据的空间需要执行optimize table tablename命令来进行优化(详情可看看这篇文章:http://blog.51yip.com/mysql/1222.html)。如果表的数据量非常巨大比如项目里一些日积月累不断变大的日志表,使用delete语句删除部分过期的日志数据可能需要执行很长时间,想要释放存储空间使用optimize优化也要优化很长时间,用truncate把整个表也不合适,这种情况下建表的时候可以将表建成分区表,删数据的时候直接删表分区。

下面我们来做一个小实验来测试这两种删数据的方式

首先建一张名为test_log以时间字段为分区的表:

CREATE TABLE `test_log` (

`product_id` varchar(20) DEFAULT NULL COMMENT '客户端的产品标识',

`client_version` varchar(20) DEFAULT NULL COMMENT '客户端的版本号简称',

`os_type` varchar(20) DEFAULT NULL COMMENT '用户手机操作系统的类型',

`imsi` varchar(50) DEFAULT NULL COMMENT '用户手机的 IMSI 号',

`insert_time` datetime DEFAULT NULL COMMENT '当前日志记录的入库时间'

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMEN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值