`

mysql max key length is 767 byte mb4建表索引过长

 
阅读更多
create table: Specified key was too long; max key length is 767 bytes

原因
数据库表采用utf8编码,其中varchar(255)的column进行了唯一键索引
而mysql默认情况下单个列的索引不能超过767位(不同版本可能存在差异)

于是utf8字符编码下,255*3 byte 超过限制

解决
1  使用innodb引擎;
2  启用innodb_large_prefix选项,将约束项扩展至3072byte;
3  重新创建数据库;

my.cnf配置:
default-storage-engine=INNODB
innodb_large_prefix=on
分享到:
评论

相关推荐

    MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法

    max key length is 1000 bytes”。这个错误意味着你试图创建的索引键(key)超过了MySQL允许的最大长度。MySQL对每个表的每个索引都有一个最大长度限制,通常是1000字节。这个限制包括了所有被索引字段的长度。 在...

    mysql建库时提示Specified key was too long max key length is 1000 bytes的问题的解决方法

    1. **索引字段过长**:MySQL对不同存储引擎支持的最大索引长度有所区别。例如,在MyISAM引擎中,单个索引列的最大长度为255个字符;而在InnoDB引擎中,最大索引长度取决于使用的行格式。如果索引字段总长度超过了所...

    Mysql建表与索引使用规范详解

    MySQL数据库在设计和优化中,建表和索引的使用规范是至关重要的,它们直接影响到数据存储的效率和查询性能。以下是对这些规范的详细解释: 1. **字段设置**: - **非空约束**:在创建表时,推荐为字段设置非空约束...

    mysql建表语句.zip

    综上所述,“mysql建表语句.zip”中的内容可能涵盖了如何为大数据环境设计高效的 MySQL 表结构,包括但不限于字段定义、主键和索引的设置、数据分区策略等。这些知识点对于千亿级数仓项目的实施至关重要,确保数据的...

    oracle到mysql建表语句迁移

    oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本

    mysql数据抽取,自动生成hive建表语句

    4. **处理分区**:如果需要在Hive中创建分区表,可以分析MySQL表中的时间戳或分类字段,将其设置为Hive的分区字段。 5. **生成Hive建表语句**:基于上述信息,构造Hive的CREATE TABLE语句,包括表名、字段定义、...

    java实体转mysql建表语句

    在Java开发中,将Java实体类转换为MySQL数据库的建表语句是一项常见的任务,它有助于快速构建数据库模型,尤其在使用ORM(对象关系映射)框架如Hibernate、MyBatis时更为便捷。本篇文章将深入探讨这个过程,并提供...

    mysql批量导出建表语句.zip

    MySQL批量导出建表语句是一项常见的数据库管理任务,它涉及到数据库备份、迁移或复制到新的环境。在本例中,"mysql批量导出建表语句.zip" 是一个压缩包,包含了一种使用Kettle(也称为Pentaho Data Integration,...

    MySQL索引类型大汇总

    MySQL 索引类型大汇总 MySQL 索引类型是数据库性能优化的关键所在。索引可以大幅度提高查询速度,提高数据库的高效运行。在 MySQL 中,索引可以分为单列索引和组合索引两种。 1. 普通索引 普通索引是最基本的索引...

    JBPM 4 mysql 建表 sql

    JBPM 4 mysql 建表 sql ,希望对某些人有用处

    MySQL和DB2建表SQL差异

    ### MySQL与DB2建表SQL语句的主要差异 在数据库管理领域中,不同的数据库系统有着各自独特的特性与语法。MySQL和DB2作为两种广泛使用的数据库管理系统,在创建表时存在一些重要的差异。理解这些差异对于跨数据库...

    MySQL建表样本数据代码.rar

    在建表时,还应考虑添加索引以提高查询效率,如对经常用于搜索的列创建唯一或普通索引。同时,为了保证数据的一致性,可以使用`FOREIGN KEY`来建立表之间的关联,实现参照完整性。 总之,这个“MySQL建表样本数据...

    易语言mysql建库建表

    易语言 mysql建库 建表 易语言 mysql建库 建表 易语言 mysql建库 建表

    kettle批量导出mysql建表语句

    在这个场景中,“kettle批量导出mysql建表语句”是一个关于如何使用Kettle来自动化地从MySQL数据库中提取建表语句,包括数据表和视图的创建语句,以便于备份或在其他环境中重建相同结构的过程。 首先,我们需要了解...

    mysql批量建表

    利用mysql存储函数,方便快捷批量建立mysql数据库测试表

    MySQL 索引最佳实践

    虽然理论上可以不使用任何索引运行查询,但这往往会导致执行时间过长。 #### 常见索引类型 - **B树索引(BTREE索引)**:这是MySQL中最常见的索引类型,通常用于大多数存储引擎。 - **R树索引(RTREE索引)**:仅...

    MySQL-数据库-索引详解

    MySQL 数据库索引详解 MySQL 数据库索引是一种特殊的数据库结构,可以快速查询数据库表中特定记录。索引是提高数据库性能的重要方式。 索引的概念 ---------------- 索引是表中数据的目录。如果使用索引,则扫描...

Global site tag (gtag.js) - Google Analytics