MySQL錯誤“Specified key was too long; max key length is 1000 bytes”的解決辦法
最近在處理執行 Flowable 6.5.0 官方提供的 MySQL 數據庫語句腳本的時候,
當執行到數據庫中的某三個字段設置unique索引的時候,遇到了“Specified key was too long; max key length is 1000 bytes”這樣的報錯。
問題原因
MySQL 在建立索引時,數據庫會先計算Index用到的字段長度(按下面比例乘起來不能超過限定的key長度1000):
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
比如:
兩個字段長度均設置為255,當為utf8時,索引字段的長度為:(255*3+255*3)= 1530 > 1000
解決方案
調整字段的長度,讓索引占用的字節長度小於 1000,就可以正常創建索引
比如:
將字段長度由255調整為127 ,這樣上述的情況:(127*3+127*3)= 762 < 1000