`

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脚本

    Excel生成MYSQL建表语句

    标题中的“Excel生成MYSQL建表语句”是指利用JAVA编程技术,通过读取预先设计好的Excel模板,自动生成对应的MySQL数据库建表语句的过程。这个过程通常涉及到数据处理、文件读写以及数据库操作等核心技能。 首先,让...

    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建表语句转化为postgre语句

    - MySQL使用`PRIMARY KEY`声明主键,PostgreSQL也一样,但PostgreSQL允许在单个列上设置多个唯一约束。 - MySQL的`UNIQUE`关键字与PostgreSQL相同,用于创建唯一索引。 3. 自增字段: - MySQL中的`AUTO_...

    易语言mysql建库建表

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

    activity mysql 建表语句

    activity mysql 建表语句 23张表 oracle数据库脚本的改版

    mysql建库建表常用语句

    MySQL 建库建表常用语句 在 MySQL 中,了解基本的 SQL 语句是非常重要的。本文将紹介 MySQL 中一些常用的语句,包括连接 MySQL、修改密码、增加新用户、创建数据库、选择数据库、删除数据库、显示表、描述表、选择...

    mysql批量建表

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

    根据mysql的.frm文件恢复建表语句

    转自网友的方法: ...--server = 用户:密码@地址:端口 frm文件所在文件夹 > 生成的建表脚本的文件的地址 --diagnostic (诊断模式) --port=没有被占用的端口 --user=root --quiet(除了脚本和错误屏蔽其它信息)

Global site tag (gtag.js) - Google Analytics