MySQL 錯誤 #1071:了解金鑰長度限制
嘗試向具有特定欄位(column1 和column2)的表格添加唯一索引時),使用者可能會遇到以下錯誤:
#1071 - Specified key was too long; max key length is 767 bytes
雖然最初看起來column1(20)和column2(500)的總長度在最大鍵長767位元組之內,實際解釋在於理解MySQL的前綴索引限制。
在5.7之前的MySQL版本中,InnoDB表有一個前綴索引限制為 767 位元組,而 MyISAM 表的限制更大,為 1,000 位元組。這意味著索引使用的最大位元組數是基於索引中包含的列的起始部分。
在給定的範例中,column1 和 column2 都是 VARCHAR(x) 列,儲存可變長度字串。發生該錯誤的原因是 MySQL 將列的整個長度視為索引的一部分,而不僅僅是儲存的實際資料。因此,即使column1和column2中的實際資料比分配的總長度短,索引大小也會超出最大限制。
為了避免此錯誤,使用者有幾個選擇:
了解列長度對索引大小的影響對於避免 MySQL 鍵長度錯誤至關重要。透過仔細管理列大小和索引定義,使用者可以在不超出資料庫限制的情況下成功實施索引並維護資料完整性。
以上是為什麼我會收到 MySQL 錯誤 #1071:指定的鍵太長?的詳細內容。更多資訊請關注PHP中文網其他相關文章!