Index column size too large. The maximum column size is 767 bytes

碼上筆記發表於2017-10-25

Index column size too large. The maximum column size is 767 bytes


5.6及以上高版本MySQL innodb引擎建立表或者新增索引的時候 報Index column size too large. The maximum column size is 767 bytes

低版本可能是正常的 


原因主要是高版本的資料庫 為了效能 很多東西做了限制 不合理的欄位長度 不合理的查詢方式 都會幹掉

如果改配置的話 配置改了之後 字符集等也需要設定

而且對innodb效能 應該有所損耗 

可以把作為索引的那個column 改小一點 就可以了



確實需要大欄位索引可以參考:https://help.aliyun.com/knowledge_detail/41707.html


ElasicSearch關聯的mysql表,插入資料時會有以下提示

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes


原因分析:

MySQL的varchar主鍵只支援不超過767個位元組,需要將mysql的字元編碼設定為utf8mb4

輸入以下命令開啟編輯介面

[plain]  view plain  copy
  1. sudo vi /etc/mysql/my.cnf    

在[mysqld]下加入以下配置:

[plain]  view plain  copy
  1. innodb_file_format=barracuda    
  2. innodb_file_per_table=true    
  3. innodb_large_prefix=true    
  4. character-set-server=utf8mb4    
  5. collation-server=utf8mb4_unicode_ci    
  6. max_allowed_packet=500M    
儲存完重啟後就能插入了。

詳細可見Nutch之MySQL資料庫的配置



相關文章