一个 T 的 SqlServer 数据库太慢, 想删除旧的数据, 怎么做比较好?

2020-01-16 18:09:34 +08:00
 MozzieW

跑了几年的网站, 没有源码. 现在是想把数据想同步出来, 然后逐个表 delete * from table where date<2018 ?
现在是担心复制太慢, 删除太慢. 在生产环境做的话要很久, 在备份做这个操作会不会比较好? 不过备份做的话还要再同步一次最新数据?
请问在座各位有没有什么建议

2478 次点击
所在节点   SQL Server
6 条回复
loading
2020-01-16 18:30:59 +08:00
写个脚本慢慢删不行吗?求快很容易出事。
monsterxx03
2020-01-16 18:34:20 +08:00
建个新表, 把要保留的数据 select 进去, drop 老表, rename 新表
tomczhen
2020-01-16 18:36:35 +08:00
先看看数据库文件大小里面日志大小占多大比例。
lovelife1994
2020-01-16 18:40:10 +08:00
新的数据通过 mq binlog 之类的同步,旧的数据通过 job 分批迁移。
CallMeReznov
2020-01-16 19:17:31 +08:00
啥网站能有一个 T 的数据?
听 2 楼的,你看是不是日志从来没有截断收缩过噢!
MozzieW
2020-01-17 09:22:03 +08:00
@loading 数据库不熟啊, 平时没接触. 就是怕快可能出事

@monsterxx03
@tomczhen 非常好的建议, 谢谢
@lovelife1994 我了解一下 mp binlog , 谢谢

@CallMeReznov 网站是个简单说法, 已经跑了好几年的系统了. 怀疑里面放图片或文件了? 不然纯文本很难这么大才对是吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/638517

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX