當前位置:編程學習大全網 - 編程軟體 - mysql 8 新特性壹 ALGORITHM=INSTANT 實現的快速DDL

mysql 8 新特性壹 ALGORITHM=INSTANT 實現的快速DDL

參考 /doc/relnotes/mysql/8.0/en/news-8-0-12.html

在線DDL之 快速增加列(秒級別的),並不會造成業務抖動。該功能自 MySQL 8.0.12 版本引入,是由騰訊遊戲DBA團隊貢獻,我國程序員還是挺厲害的嘛。註意壹下,此功能只適用於 InnoDB 表。實際上MySQL 5.7就已支持 Online DDL,雖說大部分 DDL 不影響對表DML操作,但是依然會消耗非常多的時間,且占用額外的磁盤空間,並會造成主從延遲,或者影響表的查詢速度。有了這個ALGORITHM=INSTANT 就可應對瞬息萬變的需求了。。

ALGORITHM=INSTANT 目前對6種ddl有效:

實際試驗下,使用 mysql5.7的INPLACE 算法 時間: 52s。

使用 Instant Add Column ,時間:0.39 s。 果然是秒級別添加

當然我們不需要顯式指定algorithm=instant;mysql會優先使用INSTANT算法來進行ddl的;若顯式指定algorithm=instant 同時目標ddl不支持就會報錯。如下,DROP COLUMN 時指定則報錯

添加或刪除virtual 列

添加或刪除列默認值

修改 ENUM 定義

修改索引類型

重命名表,好像和5.7的INPLACE算法也沒啥時間上的區別。INPLACE的rename table已經足夠快了

還有壹些特殊情況不能使用ALGORITHM=INSTANT的:

Instant Add Column只能將新字段添加到表的尾巴上,不能添加到中間!

不支持壓縮表,即該表行格式不能是 COMPRESSED。

不支持包含全文索引的表;不支持臨時表;不支持那些在數據字典表空間中創建的表。這些就不壹壹驗證了。平時操作時要註意下!

  • 上一篇:點燃我溫暖妳14集更新時間
  • 下一篇:加工中心空跑編程怎麽編
  • copyright 2024編程學習大全網