1071 - 指定的密钥太长;最大密钥长度为 1000 字节

Dan*_*orf 5 mysql

当我导入 Sqlbackup 时出现以下错误:

SQL-Befehl:

CREATE TABLE jos_hikashop_zone_link (
    zone_parent_namekey VARCHAR(255) NOT NULL,
    zone_child_namekey VARCHAR(255) NOT NULL,
    PRIMARY KEY (zone_parent_namekey, zone_child_namekey)
)
ENGINE = MYISAM
AVG_ROW_LENGTH = 49
CHARACTER SET utf8
COLLATE utf8_general_ci
MySQL meldet: Dokumentation
Run Code Online (Sandbox Code Playgroud)

1071 - 指定的密钥太长;最大密钥长度为 1000 字节

在导入文件之前,我尝试“设置 GLOBAL storage_engine='InnoDb'”。

我无法获取新的 SQLImportfile。

我在本地计算机上使用 XAMPP。

Mar*_*ams 6

由于您的主键是两个 UTF8 VARCHAR(255) 列上的多列主键,因此索引大小是两个列的大小相加。

UTF8 列上的索引会自动分配所有可能的空间,其中每个字符最多可占用 3 个字节。因此,您的索引大小为 255 个字符 * 3 个字节 * 2 列 = 1530 个字节。

MyISAM 的索引限制为 1000 字节。InnoDB 的限制甚至更小(767 字节),除非您使用的是 MySQL 5.7.7+,在这种情况下,默认限制为 3072 字节。

尝试减小索引大小。通常,索引大小越小,查找性能就越好。