我需要将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。
我该如何解决?
答案 0 :(得分:2)
不幸的是,没有真正的解决方案。您唯一的选择是减小列的大小,使用不同的字符集(如UTF-8),或使用不同的引擎(如MYISAM)。在这种情况下,我将字符集切换为UTF-8,将最大密钥长度提高到255个字符。