开发者社区> 问答> 正文

PolarDB 修改字符集会锁表吗

已解决

PolarDB 修改字符集会锁表吗

展开
收起
提个问题 2024-06-12 17:09:16 68 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    修改列的字符集是否“锁表”取决于您使用的PolarDB MySQL版本和所进行的具体修改内容。
    当您使用PolarDB MySQL 8.0.2版本,且字符集修改满足如下所有条件时,修改字符集操作无需“锁表”,可以无视表大小,秒级完成。
    • 被修改的列为char ,varchar, enum以及text类型
    • 将列的字符集从utf8mb3修改至utf8mb4 或将任意字符集修改至BINARY字符集
    • 修改的列没有索引
    • 修改前后字段存储长度不跨越255字节
        若您使用的修改不满足上述条件,或者您使用的PolarDB MySQL版本不为8.0.2时,修改列的字符集操作需要“锁表”,在修改期间仅支持对目标表进行查询操作,不支持对目标表进行写入操作。
        如您不确定是否满足上述条件时,您可以在DDL语句末尾添加 "ALGORITHM = INPLACE"从句,此时,当修改字符集操作需要“锁表”时,DDL语句会直接返回报错。
    2024-06-12 17:09:17
    赞同 2 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PolarDB+AnalyticDB助力交通物流行业系统升级 立即下载
PolarDB NL2SQL: 帮助您写出准确、优化的SQL 立即下载
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载