【发布时间】:2020-09-25 09:19:41
【问题描述】:
我在装有 Tomcat 7.0.76.0 和 MariaDB 10.2.23 的 Linux 机器上安装 Govway 3.3.2;当我开始导入 sql“GovWay.sql”时,出现错误“ERROR 1071 (42000): Specified key is too long; max key length is 3072 bytes”。 我尝试更改字符,还尝试设置以下变量:
- SET GLOBAL innodb_large_prefix=ON;
- SET GLOBAL innodb_file_format=barracuda;
- SET GLOBAL innodb_file_per_table=true;
但我还没有解决问题。
这个问题中提出的解决方案,我无法应用它们 question
据说可以改变的其他解决方案
varchar (4000)
但我无法进行此更改。
有什么建议吗?
【问题讨论】:
-
这是硬编码限制,不能更改,见InnoDB Limitations - Large Prefix Size。
-
所以不可能做到这一点?他们在编写安装手册时做错了吗? @Akina
-
您真的需要索引该列的全部 4000 个符号吗?也许索引前 3072 个字符
CREATE TABLE .. ( .., column VARCHAR(4000) .. INDEX .. (column(3072)), .. )就足够了? -
我不知道,因为它是第三方应用程序。我可以试试@Akina
-
调查有问题的索引的目的。也许根本不需要它?或者,例如,即使前 10 个字符也足以改进使用该索引的查询?我认为 DDL 中根本没有指定前缀长度。