跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有一个问题,有一个很大的表,需要添加一列,有什么好的办法?
未分類
24 10 月 2020

有一个问题,有一个很大的表,需要添加一列,有什么好的办法?

有一个问题,有一个很大的表,需要添加一列,有什么好的办法?

資深大佬 : twg 1

公司有些表数据量特别大,大概 3000w,现在需要增加一列,如果直接使用 alter,需要 10min 才能完成,这是完全不能接受的。所以除了新建表和停机,还有什么好的方法?

PS:数据库使用的事 MySQL 。

大佬有話說 (12)

  • 資深大佬 : lychs1998

    读写频繁的话主从切换。

    读写频率一般的话可以考虑一下 pt-osc,gh-ost 这两个工具增加字段。

    最新的 MYSQL8 我记得是可以实现秒级添加字段。

  • 資深大佬 : qiayue

    加列是一个很频繁的操作吗?
    如果几个月一次的话,1 小时也可以接受。

  • 主 資深大佬 : twg

    @lychs1998 我们用的是 mysql5.6 版本

  • 主 資深大佬 : twg

    @qiayue 加列不是很频繁,但是会锁住表吧?1 个小时肯定不能接受。

  • 資深大佬 : skymei

    同样有疑问,蹭个贴

  • 資深大佬 : x4400177

    停服

  • 資深大佬 : CrazyEight

    高性能 MySQL 讲到过:
    ( 1 )不想担风险:在一台不提供服务的机器完成新表的数据同步,再切换机器。
    ( 2 )锁住表,拷贝.frm 文件并做出对应修改,再用新的.frm 文件替换掉旧的.frm 文件。有风险。

  • 主 資深大佬 : twg

    @x4400177 之前有一次就是停服来操作的。

  • 資深大佬 : redtea

    借此机会分表吧,500 万就该分了。

  • 資深大佬 : CODEWEA

    原表叫 a,复制一个表叫 b,然后给这个表 b 增加列,最后补全表 b 数据

  • 資深大佬 : CODEWEA

    其实就是空间换时间

  • 主 資深大佬 : twg

    @CODEWEA 但是这个是不是需要一个从 a 表切换到 b 表的过程?那么还需要修改相应代码所连接的表?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具