mysql数据库按时间删除数据总结
主要原因如下:
数据库所在磁盘空间不够所致。
于是登录数据库所在的服务器,查看了下数据库所占的磁盘空间如下:
可以看到磁盘的33G,被全部占满了,于是就
今天访问程序时报如下异常: 主要原因如下: 数据库所在磁盘空间不够所致。 于是登录数据库所在的服务器,查看了下数据库所占的磁盘空间如下: 可以看到磁盘的33G,被全部占满了,于是就开始了数据库表的清理工作。 1.首先执行以下sql语句,查询数据库中各个表所占空间大小,输出按降序排序 SELECT TABLE_NAME, CONCAT(TRUNCATE(data_length/1024/1024,2),' MB') AS data_size, CONCAT(TRUNCATE(index_length/1024/1024,2),' MB') AS index_size FROM information_schema.tables WHERE TABLE_SCHEMA = 'olderdb' GROUP BY TABLE_NAME ORDER BY data_length DESC; 输出结果如下: 看见了吧,一亿多条数据,占用了十几G的内存空间。 那么如何删除了,首先查看表字段: 发现sttime字段是按照时间顺序插入的,这就简单了,直接按照时间段删除数据就可以了。具体的删除方法如下: 按时间段进行删除操作MySQL 删除数据表,sql如下: ① 使用BETWEEN关键字根据时间字段删除一定时间内的记录 DELETEFROM表名WHERE时间字段BETWEEN开始时间AND结束时间 示例: DELETEFROMtbWHERECreateTimeBETWEEN'2017-01-0100:00:00'AND'2017-02-0100:00:00'--删除tb表中2017年1月1日到2017年2月1日的数据 ② 使用时间字段比较大小来确定删除范围 --语法:DELETEFROM表名WHERE时间字段>=开始时间AND时间字段='2017-01-0100:00:00'ANDCreateTime (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |