2010-08-09 37 views
0

我在嘗試添加FULLTEXT索引標題,版和作者在我的MySQL數據庫時出現以下錯誤:全文鍵太長

指定的鍵過長;最大密鑰長度爲1000個字節

這裏是列:

`Title` varchar(255) NOT NULL, 
`Edition` varchar(20) default NULL, 
`Authors` varchar(255) default NULL, 

他們都不是獨一無二的。即使在所有3組合不是唯一的。數據庫的主鍵是ISBN。

我添加此FULLTEXT索引的原因是人們可以使用可能包含標題,版本或作者的關鍵字來搜索圖書。

+0

這個問題的答案已經給出[這裏](http://stackoverflow.com/questions/3489041/mysqlerror-specified-key-was-too-long-max-key-length-is-1000-bytes/3489331#3489331)。 – 2011-11-10 10:08:04

回答

1

MySQL對索引分配多少空間有限制 - it's 1000 bytes for MyISAM, 767 for InnoDB

周圍的限制,唯一的方法是定義鍵該索引列的一部分 - 這意味着這是所有將在索引,限制它的值:

CREATE INDEX index_name ON YOUR_TABLE(title(100), edition, authors(100)); 

也就是說將索引中的第一百標題欄的字符,所有版本欄以及作者欄的100個字符。我相信VARCHAR列的比率是3比1,所以VARCHAR(250)需要750個字節。

+0

非常感謝 – babonk 2010-08-09 05:00:48