FULLTEXT键太长了

时间:2010-08-09 04:46:52

标签: sql mysql full-text-search full-text-indexing

尝试在我的MySQL数据库中向Title,Edition和Author添加FULLTEXT索引时出现以下错误:

  

指定的密钥太长;最大密钥长度为1000字节

以下是专栏:

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

它们都不是唯一的。即使是所有3种的组合也不是唯一的。数据库的主键是ISBN。

我添加此FULLTEXT索引的原因是人们可以使用可能包含标题,版本或作者的关键字搜索图书。

1 个答案:

答案 0 :(得分:2)

MySQL对索引的空间分配有限制 - it's 1000 bytes for MyISAM, 767 for InnoDB

限制的唯一方法是定义索引列的一部分的键 - 这意味着将在索引中的所有键,限制它的值:

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

这将索引标题列的前100个字符,所有版本列和作者列的100个字符。我相信VARCHAR列的比率为3:1,因此VARCHAR(250)需要750个字节。