解决INnoDB创建数据表的时候出现的 Error : Index column size too large. The maximum column size is 767 bytes.的问题

太过爱你忘了你带给我的痛 2024-04-18 15:54 143阅读 0赞

创建数据库表时出现的问题:

参考文档:http://www.erciyuanr.com/archives/325,https://blog.csdn.net/hanyunpiaoyu/article/details/82377897

出现这个问题的原因是在于默认的InnoDB 引擎单一字段索引的长度最大为 767 字节,但是如果我们用utf-8的字符集的话,一个字符有三个字节,这样算下来某些数据表的名称就不够。

所以需要修改一些配置:

1.把索引的长度的一个参数打开,这样索引下标最大可以到到3072字节(不过貌似这样会降低查询效率)

  1. SET global innodb_file_format = BARRACUDA;
  2. SET global innodb_large_prefix = ON;

2.将row_format改为 Dynamic 或者 Compressed

  1. --创建表的时候
  2. create table tb_name
  3. (
  4. ……
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8ROW_FORMAT=DYNAMIC;
  6. --修改表的时候
  7. alter table tb_name ROW_FORMAT=DYNAMIC

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读