独特的索引 - 指定的密钥太长;最大密钥长度为767字节

时间:2017-07-24 18:22:15

标签: mysql

我需要将url保存到mysql表中我还需要通过url搜索行。为了提高性能,我想为url列添加UNIQUE索引。

CREATE TABLE `fp_feeds_in_records` (
  `id` bigint auto_increment NOT NULL,
  `url` varchar(1000) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  unique unique_url (val)
) ENGINE=InnoDB

但是当我运行CREATE语句时,我收到错误消息:Error Code: 1071. Specified key was too long; max key length is 767 bytes。 我需要保存的网址太长,所以我不能像其他答案所说的那样使用varchar(255)。 MySQL版本是5.6.35。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

不幸的是,没有真正的解决方案。您唯一的选择是减小列的大小,使用不同的字符集(如UTF-8),或使用不同的引擎(如MYISAM)。在这种情况下,我将字符集切换为UTF-8,将最大密钥长度提高到255个字符。