RDS MySQL 为utf8mb4表创建索引的方法
我们知道MySQL Innodb 对于索引长度的限制为 767 字节,并且UTF8mb4字符集是4字节字符集,则 767字节 / 4字节每字符 = 191字符(默认索引最大长度),所以在varchar(255)或char(255) 类型字段上创建索引会失败,提示最大索引长度为767字节。
错误信息:
UTF8mb4 字符集在Mysql官方网站的参考链接如下:
http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html
解决问题的步骤:
1. 首先通过RDS控制台->参数设置中调整 innodb_large_prefix 为ON。
2. 创建表的时候指定表的row format格式为Dynamic或者Compressed,如下示例:
2.1(xxxx@xxxx.mysql.rds.aliyuncs.com) [xxxx]> create table idx_length_test_03 (id int auto_increment primary key, name varchar(255)) RO