V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MozzieW
V2EX  ›  SQL Server

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

  •  
  •   MozzieW · 2020-01-16 18:09:34 +08:00 · 2340 次点击
    这是一个创建于 1532 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    @CallMeReznov 网站是个简单说法, 已经跑了好几年的系统了. 怀疑里面放图片或文件了? 不然纯文本很难这么大才对是吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5479 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:01 · PVG 17:01 · LAX 02:01 · JFK 05:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.