91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql 5.6 在線DDL

發布時間:2020-05-21 14:17:10 來源:網絡 閱讀:579 作者:xiaojing413332 欄目:MySQL數據庫

online ddl主要包括3個階段,prepare階段,ddl執行階段,commit階段,rebuild方式比no-rebuild方式實質多了一個ddl執行階段,prepare階段和commit階段類似。下面將主要介紹ddl執行過程中三個階段的流程。

  • Prepare階段:

  1. 創建新的臨時frm文件(與InnoDB無關)

  2. 持有EXCLUSIVE-MDL鎖,禁止讀寫

  3. 根據alter類型,確定執行方式(copy,online-rebuild,online-norebuild)
    假如是Add Index,則選擇online-norebuild即INPLACE方式

  4. 更新數據字典的內存對象

  5. 分配row_log對象記錄增量(僅rebuild類型需要)

  6. 生成新的臨時ibd文件(僅rebuild類型需要)

ddl執行階段:

  1. 降級EXCLUSIVE-MDL鎖,允許讀寫

  2. 掃描old_table的聚集索引每一條記錄rec

  3. 遍歷新表的聚集索引和二級索引,逐一處理

  4. 根據rec構造對應的索引項

  5. 將構造索引項插入sort_buffer塊排序

  6. 將sort_buffer塊更新到新的索引上

  7. 記錄ddl執行過程中產生的增量(僅rebuild類型需要)

  8. 重放row_log中的操作到新索引上(no-rebuild數據是在原表上更新的)

  9. 重放row_log間產生dml操作append到row_log最后一個Block

  • commit階段:

  1. 當前Block為row_log最后一個時,禁止讀寫,升級到EXCLUSIVE-MDL鎖

  2. 重做row_log中最后一部分增量

  3. 更新innodb的數據字典表

  4. 提交事務(刷事務的redo日志)

  5. 修改統計信息

  6. rename臨時idb文件,frm文件

  7. 變更完成


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临夏县| 湖州市| 鲁山县| 南阳市| 龙泉市| 乐清市| 那坡县| 利川市| 萍乡市| 彩票| 广河县| 桂东县| 虎林市| 溆浦县| 屯留县| 宜兴市| 长顺县| 鸡泽县| 老河口市| 邻水| 通江县| 榕江县| 屯昌县| 泰顺县| 阿巴嘎旗| 永城市| 浠水县| 蓬莱市| 大方县| 武陟县| 凤台县| 朔州市| 杂多县| 资兴市| 淮安市| 工布江达县| 金门县| 襄汾县| 淄博市| 贡觉县| 九江县|