2017-07-24 168 views
0

我需要将url保存到mysql表中我还需要通过它们的url搜索行。为了提高性能,我想为URL列添加UNIQUE索引。UNIQUE INDEX - 指定的密钥太长;最大密钥长度是767字节

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。 urls我需要保存太长,所以我不能使用varchar(255)作为其他答案建议。 MySQL版本是5.6.35。

我该如何解决?

回答

1

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

相关问题