V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
MozzieW

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

  •  
  •   MozzieW · Jan 16, 2020 · 2956 views
    This topic created in 2294 days ago, the information mentioned may be changed or developed.

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

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

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

    @CallMeReznov 网站是个简单说法, 已经跑了好几年的系统了. 怀疑里面放图片或文件了? 不然纯文本很难这么大才对是吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1108 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 18:22 · PVG 02:22 · LAX 11:22 · JFK 14:22
    ♥ Do have faith in what you're doing.