1. 程式人生 > >mysql 索引過長1071-max key length is 767 byte

mysql 索引過長1071-max key length is 767 byte

問題

create table: Specified key was too long; max key length is 767 bytes

原因

資料庫表採用utf8編碼,其中varchar(255)的column進行了唯一鍵索引

而mysql預設情況下單個列的索引不能超過767位(不同版本可能存在差異)

於是utf8字元編碼下,255*3 byte 超過限制

解決

1  使用innodb引擎;

2  啟用innodb_large_prefix選項,將約束項擴充套件至3072byte;

3  重新建立資料庫;

my.cnf配置:

default-storage-engine=INNODB

innodb_large_prefix=on

一般情況下不建議使用這麼長的索引,對效能有一定影響

轉自https://www.cnblogs.com/littleatp/p/4612896.html