加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql数据库按时间删除数据总结

发布时间:2022-10-25 22:01:18 所属栏目:MySql教程 来源:转载
导读: 今天访问程序时报如下异常:

主要原因如下:
数据库所在磁盘空间不够所致。
于是登录数据库所在的服务器,查看了下数据库所占的磁盘空间如下:

可以看到磁盘的33G,被全部占满了,于是就

今天访问程序时报如下异常:

MySQL 删除数据表_mysql删除表里重复数据_mysql 删除重复数据

主要原因如下:

数据库所在磁盘空间不够所致。

于是登录数据库所在的服务器,查看了下数据库所占的磁盘空间如下:

可以看到磁盘的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;

输出结果如下:

mysql 删除重复数据_mysql删除表里重复数据_MySQL 删除数据表

看见了吧,一亿多条数据,占用了十几G的内存空间。

那么如何删除了,首先查看表字段:

mysql删除表里重复数据_MySQL 删除数据表_mysql 删除重复数据

发现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

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!