TiDB DDL变更与MySQL对比区别及限制

  • A+
所属分类:TiDB
阿里云代金券

在TiDB数据库中运行的DDL操作不会影响对表的读取或写入,但是DDL变更有一些限制,数据库吧分享PingCAP官方文档关于TiDB DDL变更与MySQL对比区别及限制:

TiDB DDL变更限制

Add Index

  • 不支持同时创建多个索引
  • 不支持通过ALTER TABLE在所生成的列上添加索引
  • Add Column

  • 不支持同时创建多个列
  • 不支持将新创建的列设为主键或唯一索引,也不支持将此列设成auto_increment属性
  • Drop Column

  • 不支持删除主键列或索引列
  • Change/Modify Column

  • 不支持有损变更,比如从 BIGINT 变为 INTEGER,或者从 VARCHAR(255) 变为 VARCHAR(10)
  • 不支持修改 DECIMAL 类型的精度
  • 不支持更改 UNSIGNED 属性
  • 只支持将 CHARACTER SET 属性从 utf8 更改为 utf8mb4
  • Alter Database

  • 只支持将 CHARACTER SET 属性从 utf8 更改为 utf8mb4
  • LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}

    LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}TiDB支持的语法,但是在 TiDB 中不会生效。所有支持的DDL变更都不会锁表。

    ALGORITHM [=] {DEFAULT|INSTANT|INPLACE|COPY}

    TiDB 完全支持 ALGORITHM=INSTANT 和 ALGORITHM=INPLACE 语法,但运行过程与 MySQL 有所不同,因为 MySQL 中的一些 INPLACE 操作实际上是 TiDB 中的 INSTANT 操作。ALGORITHM=COPY 语法在 TiDB 中不会生效,会返回警告信息。

    本文仅供参考,详细请以PingCAP官方文档为准。

    注意:购买阿里云数据库,先领取阿里云2000元代金券,符合条件的订单可以使用代金券抵扣。

    阿里云数据库优惠

    发表评论

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: