我需要将 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。
如何解决?
最佳答案
不幸的是,没有真正的解决方案。您唯一的选择是减小列的大小、使用不同的字符集(如 UTF-8)或使用不同的引擎(如 MYISAM)。在本例中,我将字符集切换为 UTF-8,从而将最大 key 长度提高到 255 个字符。
关于mysql - UNIQUE INDEX - 指定的键太长;最大 key 长度为 767 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45287487/