caiem
V2EX  ›  数据库

mysql 有张 50G 的大单表,准备整理碎片(4G 多)

  •  
  •   caiem · Nov 30, 2019 · 2879 views
    This topic created in 2381 days ago, the information mentioned may be changed or developed.

    mysql 是 5.7 版本,磁盘剩余空间为 40G. 如果执行 alter table xx engine=innodb,algorithm=inplace; 看一些文档说明是需要重建表操作,会占用一定的磁盘空间,那么是否会存在因为剩余空间不足操作失败的可能呢? 有没有不许重建表的方式整理碎片

    2 replies    2019-12-03 16:21:27 +08:00
    nvkou
        1
    nvkou  
       Dec 1, 2019 via Android
    divide and conquer 可行的话上脚本可能写逻辑快一点。
    065535
        2
    065535  
       Dec 3, 2019
    50G 的表,剩余空间为 40G。不管什么方式的碎片整理,基本流程是拷贝数据到新的存储上,随后释放原存储。如果碎片率大于 25%,[可能]会成功。为了保证 100%成功,建议清理其他表空间的历史数据来释放一些空间给这张单表做碎片整理。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1154 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 17:38 · PVG 01:38 · LAX 10:38 · JFK 13:38
    ♥ Do have faith in what you're doing.