开发者社区> 问答> 正文

PolarDB MySQL支持扩展VARCHAR类型字段吗

已解决

PolarDB MySQL支持扩展VARCHAR类型字段吗

展开
收起
提个问题 2024-06-11 10:15:29 32 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
        PolarDB 支持快速扩展VARCHAR类型字段。根据VARCHAR列长度的扩展范围不同,内核会自动选择INPLACE 方式和COPY DDL 方式:
    • INPLACE方式扩展(仅修改元数据,无需表重建,支持并发读写):
        当VARCHAR列扩展前后的长度不跨越255 bytes,如从0-255Bytes,或者从256Bytes到更大的范围时,PolarDB MySQL支持只修改元数据。此时无需进行进行表重建,可以“秒级”完成。
    • COPY 方式扩展(需要表重建,仅支持并发的读请求,)
         当修改VARCHAR列长度跨越255 bytes,也即从小于255Bytes到大于255Bytes的长度时,PolarDB默认走Copy DDL类型,即全程都是锁表的,不支持DML写操作,仅支持读操作。若您业务需要在DDL期间进行写入,您可以参考此文档使用DMS的无锁变更功能进行DDL操作。
        
        当用户不确定自己修改VARCHAR列的范围是否满足上述条件时,可以手动指定ALGORITHM=INPLACE ;如果不支持快速列扩展,会直接报错。例如

    注1:VARCHAR类型的字段最大占用存储字节长度与字符集有关。如UTF8MB4,VARCHAR(80)的字段,其最大存储字节长度为 单个字符最大编码字节(4 bytes)* 最大字符数(80)= 320 bytes。
    注2:VARCAHR类型属于变长存储类型,磁盘仅存储实际长度,因此建议用户在使用VARCHAR字段时,考虑将最大长度直接调整到255以上,避免扩展字段时可能需要走COPY算法。
    2024-06-11 10:15:30
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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

相关镜像