Mysql 1071-指定的密钥太长;最大密钥长度为1000字节
我在导入我拥有的Sqlbackup时出现以下错误: SQL Befehl:Mysql 1071-指定的密钥太长;最大密钥长度为1000字节,mysql,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_R
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
1071-指定的密钥太长;最大密钥长度为1000字节
我已经试过了
“在导入文件之前设置全局存储\u engine='InnoDb'”
我无法获取新的SQLImportfile
我在本地计算机上使用XAMPP。因为您的主键是两个UTF8 VARCHAR(255)列上的多列主键,所以索引大小是两个列的大小加在一起 UTF8列上的索引自动分配所有可能的空间,其中每个字符最多可占用3个字节。因此,索引大小为255个字符*3个字节*2列=1530个字节 MyISAM的索引限制为1000字节。InnoDB的限制更小(767字节),除非您使用的是MySQL 5.7.7+,在这种情况下,默认限制为3072字节
尽量减少索引大小。通常,索引大小越小,搜索性能越好。您指定了一个包含510个字符的复合密钥,但每个UTF-8字符可能多达4个字节,因此您请求的密钥大小超过2K,MySQL不喜欢。缩小复合密钥的大小以继续。我如何才能做到这一点?