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

問題
create table: Specified key was too long; max key length is 767 byteshtml

緣由
數據庫表採用utf8編碼,其中varchar(255)的column進行了惟一鍵索引
而mysql默認狀況下單個列的索引不能超過767位(不一樣版本可能存在差別)mysql

因而utf8字符編碼下,255*3 byte 超過限制sql

解決
1 使用innodb引擎;
2 啓用innodb_large_prefix選項,將約束項擴展至3072byte;
3 從新建立數據庫;數據庫

my.cnf配置:
default-storage-engine=INNODB
innodb_large_prefix=onide

通常狀況下不建議使用這麼長的索引,對性能有必定影響;性能

參考文檔:
https://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html編碼

https://www.cnblogs.com/yuyue2014/p/4339090.html.net

https://blog.csdn.net/C_thin/article/details/73252709rest

相關文章
相關標籤/搜索