【已解决】前缀索引第一个字段为VARCHAR类型时到底会不会截断

Viewed 54

官方文档排序键与前缀索引页面中的警告部分中写到 "如果第一列即为 VARCHAR,那么即使没有达到 36 字节,也会直接截断";

而文档 数据库建表最佳实践-前缀索引 中举了个例子:"varchar(10) + varchar(50) ,前缀索引长度只有 30", 这里也就是说并没有截取第一列VARCHAR类型的字段,而是对第二个VARCHAR类型的字段做了截断处理。

两处描述不太一致,想知道第一个字段为VARCHAR类型时前缀索引到底是怎么处理的

1 Answers

1、以排序键与前缀索引中"即使没有达到 36 个字节,因为遇到 VARCHAR,所以直接截断,不再往后继续。"为准。
2、"varchar(10) + varchar(50) ,前缀索引长度只有 30"先忽略这个点