社区
MySQL
帖子详情
mysq如何快速l删除大量数据的问题
zhxznu
2008-01-24 09:44:25
请教下:
现在公司用的mysql数据库,里面有个记录表,大概有几千万条记录,保留了04年以来的消费记录。
现在决定只保留08年以来的,现在需要删除08年以前的消费记录,大概也是几千万条。
该表的每条记录都是有提交时间字段,datetime格式。
假设表名为a,时间字段为time
我现在想用
delete from a where time < "2008-01-01 00:00:00";
担心几千万条的记录要删除很久,不知道有没有其他好的方法。
...全文
504
14
打赏
收藏
mysq如何快速l删除大量数据的问题
请教下: 现在公司用的mysql数据库,里面有个记录表,大概有几千万条记录,保留了04年以来的消费记录。 现在决定只保留08年以来的,现在需要删除08年以前的消费记录,大概也是几千万条。 该表的每条记录都是有提交时间字段,datetime格式。 假设表名为a,时间字段为time 我现在想用 delete from a where time < "2008-01-01 00:00:00"; 担心几千万条的记录要删除很久,不知道有没有其他好的方法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhxznu
2008-02-01
打赏
举报
回复
补充下,这个是13个月的数,我是分了几次删除的
zhxznu
2008-02-01
打赏
举报
回复
5482310 rows affected (21 min 27.14 sec)
给大家一个参考数据,呵呵
zhxznu
2008-02-01
打赏
举报
回复
+----------+-------+---------------+---------+---------+------+---------+-------------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+----------+-------+---------------+---------+---------+------+---------+-------------+
| Credited | range | PRIMARY | PRIMARY | 8 | NULL | 7959324 | Using where |
+----------+-------+---------------+---------+---------+------+---------+-------------+
我用EXPLAIN显示的结果,看来是已经比较优化了。由于我只是删除该表里的部分数据,所以TRUNCATE TABLE tbl_name 不能使用,那会导致现有数据丢失。另外关于先备份数据,然后删除该表,然后导入新的数据的思路
也存在一点遗憾,因为这个是生成数据库,每时都需要插入新的数据,而这个方法需要暂停下数据库,比较麻烦。
最后决定Delete吧,谢谢各位了。
microphonecarl
2008-01-30
打赏
举报
回复
问题解决了吗>
SEEE2008
2008-01-30
打赏
举报
回复
如果想要删除一个表的所有行,使用TRUNCATE TABLE tbl_name 而不要用DELETE FROM tbl_name
懒得去死
2008-01-30
打赏
举报
回复
truncate table 几乎是瞬间的。
yifuzhiming
2008-01-30
打赏
举报
回复
数据越大,删除时间就越长啊
RoameBaby
2008-01-29
打赏
举报
回复
将08年之后的数据导出,然后清空表,再将之前导出的数据导入。
如果要求数据库不能离线的话,就花些时间delete吧
懒得去死
2008-01-24
打赏
举报
回复
贴出你的EXPLAIN结果
懒得去死
2008-01-24
打赏
举报
回复
explain select * from a where time < "2008-01-01 00:00:00";
结果
XFliangwh
2008-01-24
打赏
举报
回复
或者你select一下你delete的条件,看看时间可不可以接受。
XFliangwh
2008-01-24
打赏
举报
回复
你都没删过,怎么知道很慢呢,如果担心,就一部分一部分的删,或者把08年的备份出来,把整个表删了,再把08的放回区去。
zhxznu
2008-01-24
打赏
举报
回复
谢谢你的回复,
我忘记说明,time字段已经是主键了。
这样是不是就可以了?没有其他更简单的方法了吧
懒得去死
2008-01-24
打赏
举报
回复
给TIME字段加一个索引就可以了
MySQ
L 清除表空间碎片的实例详解
(1)表的存储会出现碎片化,每当
删除
了一行内容,该段空间就会变为空白、被留空,而在一段时间内的
大量
删除
操作,会使这种留空的空间变得比存储列表内容所使用的空间更大; (2)当执行插入操作时,
MySQ
L会尝试使用...
mysq
怎么
快速
删除
大量
数据
还有一点就是,如果要
删除
表中的所有
数据
,建议使用truncate table, 尤其是表中有
大量
的
数据
, 使用truncate table是将表结构重新建一次速度要比使用delete from快很多,而delete from是一行一行的
删除
,速度很
spring+springMVC+mybaits+
mysq
(SSM)学生信息管理系统实战开发教程
本系统框架采用的是SSM,即spring、springMVC、mybaits,
数据
库采用的
MySQ
L,前端采用当前最流行的管理类框架easyui,当然咱们本项目的重点是讲解ssm框架,所以最开始会给大家讲ssm框架原理,流程架构等,后面会结合...
mysq
l
删除
大量
数据
库_
大量
删除
数据
库记录
#!/bin/bashFILE=result.sqlBAK="klvchen.goods_detail_img_20210127" # 备份
删除
数据
的表PRO="klvchen.goods_detail_img" # 需要
删除
的表for((i=0;i<=9060;i++))do # 循环 9060 次,...
mysq
queryl cache
为了保证 Query Cache 中的内容与是实际
数据
绝对一致,当表中的
数据
有任何变化,包括新增,修改,
删除
等,都会使所有引用到该表的 SQL 的 Query Cache 失效。 为什么我的系统在开启了 Query Cache 之后整体性能...
MySQL
56,679
社区成员
56,709
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章