婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL 大表添加一列的實現

MySQL 大表添加一列的實現

熱門標簽:武漢網絡外呼系統服務商 電話外呼系統改號 百應電話機器人優勢 啥是企業400電話辦理 曲靖移動外呼系統公司 南昌三維地圖標注 外呼系統打電話上限是多少 怎樣在地圖標注銷售區域 地圖標注費用是多少

問題參考自: https://www.zhihu.com/question/440231149 ,mysql中,一張表里有3億數據,未分表,要求是在這個大表里添加一列數據。數據庫不能停,并且還有增刪改操作。請問如何操作?答案為個人原創

以前老版本 MySQL 添加一列的方式:

ALTER TABLE 你的表 ADD COLUMN 新列 char(128);

會造成鎖表,簡易過程如下:

  • 新建一個和 Table1 完全同構的 Table2
  • 對表 Table1 加寫鎖
  • 在表 Table2 上執行 ALTER TABLE 你的表 ADD COLUMN 新列 char(128)
  • 將 Table1 中的數據拷貝到 Table2
  • 將 Table2 重命名為 Table1 并移除 Table1,釋放所有相關的鎖

如果數據量特別特別大,那么鎖表時間很長,期間所有表更新都會阻塞,線上業務不能正常執行。

針對 MySQL 5.6(不包含)之前的版本,通過觸發器將一個表的更新在另一個表上重復,并進行數據同步,當數據同步完成時,業務上修改表名為新表并發布。業務不會暫停。觸發器設置類似于:

create trigger person_trigger_update AFTER UPDATE on 原有表 for each row 
begin set @x = "trigger UPDATE";
Replace into 新表 SELECT * from 原有表 where 新表.id = 原有表.id;
END IF;
end;

MySQL 5.6(包含) 以后的版本引入了在線 DDL 的功能:

Alter table 你的表 , ALGORITHM [=] {DEFAULT|INSTANT|INPLACE|COPY}, LOCK [=] { DEFAULT| NONE| SHARED| EXCLUSIVE }

其中的參數:

ALGORITHM:

  • DEFAULT:默認方式,在 MySQL 8.0中,如果未顯示指定 ALGORITHM,那么會優先選擇 INSTANT 算法,如果不行再使用 INPLACE 算法,如果不支持 INPLACE 算法則使用 COPY 的方式完成
  • INSTANT:8.0 中新添加的算法,添加列是立即返回。但是不能是虛擬列。這個原理很簡單,對于新建一列,表所有原有數據并不是立刻發生變化,只是在表字典里面記錄下這個列和默認值,對于默認的 Dynamic 行格式(其實就是 Compressed 的變種),如果更新了這一列則原有數據標記為刪除在末尾追加更新后的記錄。這樣做就是沒有提前預留出列空間,之后更新可能經常會發生行記錄空間變動。但是對于大多數業務,都是最近的時間的記錄才會修改,所以問題不大。
  • INPLACE:在原表上直接進行修改,不會拷貝臨時表,可以逐條記錄修改,不會產生大量的 undolog 以及 redolog,不會占用很多 buffer。可以避免重建表帶來的IO和CPU消耗,保證期間依然良好的性能和并發。
  • COPY:拷貝到臨時新表上進行修改。由于記錄拷貝,會產生大量的 undolog 以及 redolog,并占用很多 buffer,對業務性能有影響。

LOCK:

  •  DEFAULT:和 ALGORITHM 的 DEFAULT 類似
  • NONE:無鎖,允許并發讀取和更新表
  • SHARED:共享鎖,允許讀取不允許更新
  • EXCLUSIVE:不允許讀取和更新

各個版本支持的在線 DDL 修改使用的算法的對比:

參考文檔:

MySQL 5.6:https://dev.mysql.com/doc/refman/5.6/en/innodb-online-ddl-operations.htmlMySQL

5.7:https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.htmlMySQL

8.0:https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html

可以通過:

ALTER TABLE 你的表 ADD COLUMN 新列 char(128), ALGORITHM=INSTANT, LOCK=NONE;

類似的語句,實現在線增加字段。最好還是明確 ALGORITHM 以及 LOCK,這樣執行 DDL 的時候能明確知道到底會對線上業務有多大影響

同時,執行在線 DDL 的過程大概是:


可以看出,在開始階段需要 metadata lock,metadata lock 是在 5.5 才引入到mysql,之前也有類似保護元數據的機制,只是沒有明確提出 metadata lock 概念而已。但是 5.5 之前版本(比如5.1)與5.5之后版本在保護元數據這塊有一個顯著的不同點是,5.1對于元數據的保護是語句級別的,5.5對于metadata的保護是事務級別的。所謂語句級別,即語句執行完成后,無論事務是否提交或回滾,其表結構可以被其他會話更新;而事務級別則是在事務結束后才釋放 metadata lock。

引入 metadata lock 后,主要解決了2個問題,一個是事務隔離問題,比如在可重復隔離級別下,會話A在2次查詢期間,會話B對表結構做了修改,兩次查詢結果就會不一致,無法滿足可重復讀的要求;另外一個是數據復制的問題,比如會話A執行了多條更新語句期間,另外一個會話B做了表結構變更并且先提交,就會導致 slave 在重做時,先重做 alter,再重做 update 時就會出現復制錯誤的現象。

如果當前有很多事務在執行,并且有那種包含大查詢的事務,例如:

START TRANSACTION;
select count(*) from 你的表

這樣類似的會執行較長時間的事務,也會阻塞。

所以,原則上:

  • 避免大事務
  • 在業務低峰去做表結構變化

到此這篇關于MySQL 大表添加一列的實現的文章就介紹到這了,更多相關MySQL 大表添加一列內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Innodb中mysql快速刪除2T的大表方法示例
  • MySQL大表中重復字段的高效率查詢方法
  • MySQL 刪除大表的性能問題解決方案
  • mysql千萬級數據大表該如何優化?
  • 從云數據遷移服務看MySQL大表抽取模式的原理解析

標簽:資陽 甘南 吉林 隨州 荊州 錦州 黑河 滄州

巨人網絡通訊聲明:本文標題《MySQL 大表添加一列的實現》,本文關鍵詞  MySQL,大表,添加,一列,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL 大表添加一列的實現》相關的同類信息!
  • 本頁收集關于MySQL 大表添加一列的實現的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产呦精品一区二区三区网站| 日韩专区欧美专区| 日本电影亚洲天堂一区| 麻豆精品一二三| 欧美在线一区二区三区| 麻豆一区二区三| 日韩一区二区三免费高清| 一区二区在线观看av| 成人自拍视频在线| 色婷婷激情久久| 日本成人在线一区| 日韩一区二区三区视频在线 | 一区二区在线观看视频| 欧美一级精品大片| 久久精品国产在热久久| 成人丝袜高跟foot| 91精品国产高清一区二区三区| 日韩欧美高清dvd碟片| 亚洲一级二级三级在线免费观看| 精品一区二区日韩| 久久日韩精品一区二区五区| 6080午夜不卡| 欧美精品一卡二卡| 26uuu欧美| 一区二区视频在线| 国产一区二区看久久| 色婷婷久久久综合中文字幕| 午夜成人免费视频| 成人小视频在线观看| 欧美优质美女网站| www.亚洲精品| 91无套直看片红桃| 欧美日本国产视频| 国产精品天美传媒| 久久精品欧美日韩| 性做久久久久久免费观看| 成人免费福利片| 欧美成人精品福利| 日韩专区欧美专区| 国产精品乱码人人做人人爱| 国产精品欧美综合在线| 丁香亚洲综合激情啪啪综合| 久久精品国产秦先生| 国产一区二区三区黄视频 | 国产一区二区三区免费播放 | 国产999精品久久久久久| 欧美www视频| 欧美国产日韩a欧美在线观看| 精品国产乱码91久久久久久网站| 亚洲欧洲在线观看av| 国产成人精品在线看| 色悠悠久久综合| 一区二区免费看| 91久久精品一区二区| 亚洲人成网站影音先锋播放| 国产伦精品一区二区三区视频青涩 | 精品对白一区国产伦| 粉嫩一区二区三区性色av| 国产精品丝袜久久久久久app| 国产成人精品亚洲777人妖| 奇米色777欧美一区二区| 7777精品伊人久久久大香线蕉最新版| 欧美美女一区二区在线观看| 欧美日韩和欧美的一区二区| 日本精品裸体写真集在线观看| 色综合天天做天天爱| 91精品国产手机| 国产一区二区三区国产| 国产精品一区二区在线看| 国产成人免费在线| 首页综合国产亚洲丝袜| 日韩专区在线视频| 福利视频网站一区二区三区| 欧美性做爰猛烈叫床潮| 免费日韩伦理电影| 亚洲欧美国产77777| 日韩你懂的在线播放| 日本精品一区二区三区四区的功能| 亚洲精品中文字幕在线观看| 欧美精品一区二区三区蜜臀| 在线观看91精品国产入口| 国产综合色视频| 精品亚洲免费视频| 国产成人精品一区二区三区四区 | 精品中文字幕一区二区小辣椒| 国产日韩欧美综合在线| 日韩一区二区三区av| 亚洲综合在线电影| 一本色道久久综合精品竹菊| 亚洲三级在线免费| 成人在线视频一区二区| 不卡一区二区中文字幕| 国产欧美精品一区aⅴ影院| 亚洲国产日韩一级| 8x8x8国产精品| 欧美亚洲一区二区在线| 国产91精品一区二区| 不卡视频免费播放| av在线一区二区三区| 欧美亚洲一区二区在线| 欧美日韩精品欧美日韩精品一| 69精品人人人人| 中文字幕国产精品一区二区| 一区二区三区在线免费观看| 亚洲国产精品综合小说图片区| 亚洲成av人影院| 国产精品亚洲一区二区三区在线| 高潮精品一区videoshd| 欧美午夜免费电影| 国产欧美日韩视频一区二区 | 日韩一区二区免费高清| 精品少妇一区二区三区| 中文字幕在线一区二区三区| 亚洲成人在线免费| 大尺度一区二区| 宅男在线国产精品| 樱桃国产成人精品视频| 国产成人在线免费| 欧美一级午夜免费电影| 亚洲黄色免费网站| 成人av电影免费在线播放| 欧美变态凌虐bdsm| 蓝色福利精品导航| 欧美性猛片xxxx免费看久爱| 精品久久一二三区| 美国毛片一区二区| 欧美三级日韩在线| 一区二区三区 在线观看视频 | 精品伦理精品一区| 亚洲成人高清在线| 欧美年轻男男videosbes| 免费成人在线影院| 欧美日韩国产在线观看| 一区二区欧美在线观看| 91日韩在线专区| 亚洲欧美激情插 | 91免费视频网| 亚洲国产一区二区视频| 在线观看日韩国产| 免费人成网站在线观看欧美高清| 在线91免费看| 久久99国产精品尤物| 激情五月婷婷综合| 国产亚洲福利社区一区| 成人激情免费网站| 日本视频中文字幕一区二区三区| 99久久99久久精品国产片果冻 | 欧美日韩国产经典色站一区二区三区| 国产精品护士白丝一区av| 91极品视觉盛宴| 久久精品噜噜噜成人av农村| 国产欧美日韩麻豆91| 欧美日韩国产一级| 成人天堂资源www在线| 麻豆精品在线播放| 亚洲国产精品欧美一二99| 精品人伦一区二区色婷婷| 欧美日韩中文另类| 欧美中文字幕久久| 国产精品动漫网站| 欧美日本一区二区在线观看| 国产高清精品在线| 另类小说综合欧美亚洲| 日韩美女久久久| 国产精品美女www爽爽爽| 2023国产一二三区日本精品2022| 一本一道久久a久久精品综合蜜臀| 久久精品国产秦先生| 丝袜亚洲另类欧美| 亚洲一区二区在线视频| 一区二区三区电影在线播| 自拍偷在线精品自拍偷无码专区| 国产午夜精品久久久久久久| 久久精品亚洲一区二区三区浴池 | 99久久精品费精品国产一区二区| 久久66热偷产精品| 久草精品在线观看| 狠狠色2019综合网| yourporn久久国产精品| 色综合中文字幕| 91毛片在线观看| 欧美色综合网站| 欧美一区二区三区免费观看视频| 日韩一二三四区| 国产精品的网站| 亚洲狠狠爱一区二区三区| 免费成人深夜小野草| 99这里都是精品| 日韩欧美中文字幕精品| 亚洲国产成人私人影院tom| 亚洲综合视频网| 国产在线播精品第三| 国产一区二区三区不卡在线观看| 久久99久久久久| 欧美久久久久久蜜桃| 亚洲国产成人一区二区三区| 亚洲va中文字幕| 国产精品一品二品| 日韩视频一区二区三区| 亚洲一区二区三区三|