亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

Mysql Online DDL的使用詳解

瀏覽:115日期:2023-10-02 17:11:24
目錄正文LOCK參數ALGORITHM參數COPY TABLE流程IN-PLACE流程允許并發DML的DDL操作不允許并發DML的DDL操作正文

Online DDL在MySQL 5.6才開始支持的,在5.5及之前版本,使用alter table/create index等命令進行表結構修改操作均會鎖表,這在生產環境上明顯是不可接受的。

在MySQL 5.7,Online DDL在性能和穩定性上不斷得到優化,性能有顯著優勢,且對業務負載影響小,停寫時間可控,相對pt-osc/gh-ost來說,無需安裝第三方依賴包,同時支持Inplace算法的Online DDL,由于無需拷表,所需磁盤空間也更小。

先來看一個常見的DDL語句:

ALTER TABLE tbl_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE;

其中,LOCK描述了DDL期間運行的并發程度,ALGORITHM描述了DDL的實現方式

LOCK參數 LOCK=NONE:允許并發的查詢和DML操作 LOCK=SHARED:允許并發的查詢,但阻塞DML操作 LOCK=DEFAULT: 由系統決定,允許盡可能多的并發性(并發查詢、DML或兩者)。如果省略LOCK子句相當于指定LOCK=DEFAULTLOCK=EXCLUSIVE:阻塞并發查詢和DML操作。 ALGORITHM參數 ALGORITHM=COPY:采用拷表方式進行表變更,與pt-osc/gh-ost類似; ALGORITHM=INPLACE:僅需要進行引擎層數據改動,不涉及Server層; COPY TABLE流程 首先建立臨時表,表結構為ALTAR TABLE更改后的結構 將原表中數據導入到臨時表(server層創建臨時表,會有顯示的IBD文件) 刪除原表 將臨時表rename為原來的表名

同時這一過程中,為了保持數據的一致性,中間復制數據時(Copy Table)全程鎖表只讀,如果有寫請求進來將無法提供服務,將導致連接數爆張。

IN-PLACE流程 建立一個臨時文件,掃描原表主鍵的所有數據頁 用數據頁中原表記錄生成B+樹,存儲到臨時文件中(innodb_temp_data_file_path臨時表空間下創建臨時文件) 生成臨時文件的過程中,將所有對原表的操作記在一個日志文件(rowlog)中 臨時文件生成后,將日志文件中的操作應用到臨時文件,得到一個輯數據上與原表相同 數據文件(日志文件記錄和重放操作) 用臨時文件替換原表數據文件

這一過程中,alter 語句在啟動的時候獲取MDL寫鎖,但是這個寫鎖在真正拷貝數據之前就退化成讀鎖,也就是說在最耗時的copy數據到臨時文件的過程中,原表是可以進行dml操作的,僅僅會在最后的新舊表切換階段加鎖,這個rename的時間就非常快了。

允許并發DML的DDL操作 創建/新增二級索引 重命名二級索引 刪除二級索引 改變索引類型(USING {BTREE | HASH}) 添加主鍵(expensive cost) 刪除主鍵并增加另一個(expensive cost)(ALTER TABLE tbl_name DROP PRIMARY KEY, ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE;) 新增列 (expensive cost) 刪除列 (expensive cost) 重命名列 列重新排序 (expensive cost) 改變列默認值 刪除列默認值 改變列自增值 設置列屬性null/not null (expensive cost) 修改枚舉或集合列的定義 Change ROW_FORMAT Change key block size

標記為expensive cost的操作雖然允許OnlineDDL,但本身對服務器IO,CPU都會造成較高負擔,同時會導致復制阻塞,造成另一種形式的從庫復制延遲,所以如果是大表,建議業務低峰期執行

不允許并發DML的DDL操作 添加全文索引 添加空間索引 刪除主鍵 改變列數據類型 添加自增列(新增列->變為自增列) 變更表字符集 修改數據類型長度 特例:varchar字符長度從10變更到小于255 采用inplace方式不會鎖表;從255變更到10會鎖表;

以上就是Mysql Online DDL的使用詳解的詳細內容,更多關于Mysql Online DDL的使用的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 国产一区二区在线免费观看 | 亚洲国产精久久久久久久春色 | 私人毛片免费高清影视院丶 | 免费国产黄网站在线观看视频 | 1024香蕉视频在线播放 | 国产欧美成人一区二区三区 | 9久9久女女热精品视频免费观看 | 色综合在| 精品特级一级毛片免费观看 | 国产成人高清精品免费软件 | 亚洲男人天堂网站 | 欧美亚洲国产精品久久久 | 精品国产三级a∨在线 | 99视频有精品视频免费观看 | 在线亚洲精品中文字幕美乳 | 亚洲三级理论 | 久久国产精品岛国搬运工 | a毛片在线 | 久久夜色精品国产亚洲 | 国产欧美va欧美va香蕉在线观 | 99久久免费看国产精品 | 欧美精品日日鲁夜夜添 | 免费a级在线观看播放 | 成人观看的视频三级 | 午夜视频一区二区 | 手机看片自拍日韩日韩高清 | 国内久久久久影院精品 | 成人国内精品久久久久影院 | 大伊香蕉精品视频在线 | 国产成人精品.一二区 | 国产女人在线视频 | 欧美一级一毛片 | 欧美综合视频在线 | 一级片大全 | 青青青免费手机版视频在线观看 | 亚洲欧美不卡中文字幕 | 亚洲精品一区二区三区在线播放 | 伊人手机视频 | 天堂色网站 | 久久久久久久网站 | 永久免费91桃色福利 |