数据复制服务 DRS-Oracle到MySQL迁移时,索引超长如何处理:索引长度说明

时间:2025-02-12 15:14:22

索引长度说明

MySQL引擎对索引长度有一些限制,最主要的因素就是存储引擎和字符集。不同的字符集,单个字符包含的最大字节数有所不同。例如UTF8字符集,一个字符最多包含3个字节。而UTF8MB4一个字符最多包含 4 个字节。
  • 如果是单字段索引,则字段长度不应超过表1中的“单字段最大字符数”。例如,MySQL 5.7.6版本的InnoDB引擎,单字段索引不应超过767个字节(字符数=767/最大字节数)。
  • 如果是联合索引,则每个字段长度均不能超过表1中的“单字段索引最大字符数”,且所有字段长度合计不应超过“联合索引合计最大字符数”。例如,MySQL 5.7.6版本的InnoDB引擎,每个字段索引不应超过767个字节(字符数=767/最大字节数),且所有字段索引长度总和不超过3072个字节(字符数=3072/最大字节数)。
表1 索引长度说明

引擎

MySQL版本

字符集

最大字节数

单字段索引最大字符数

联合索引合计最大字符数

InnoDB

MySQL 5.7.6及以下版本

UTF8MB4

4

191

768

MySQL 5.7.7及以上版本

UTF8MB4

4

768

768

support.huaweicloud.com/drs_faq/drs_04_0022.html