【问题标题】:UNIQUE INDEX - Specified key was too long; max key length is 767 bytes [duplicate]UNIQUE INDEX - 指定的键太长;最大密钥长度为 767 字节 [重复]
【发布时间】:2017-12-30 10:43:12
【问题描述】:

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

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。

我该如何解决?

【问题讨论】:

    标签: mysql


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-11-25
      • 2016-04-15
      • 2012-05-31
      • 2015-06-22
      • 1970-01-01
      • 2013-12-21
      • 2015-06-29
      • 2016-10-04
      • 2014-08-17
      相关资源
      最近更新 更多