問題
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編碼