MySQL索引长度限制(转)-时间长就忘记了
索引
TextField是不支持建立索引的
MySQL对索引字段长度有限制
innodb引擎的每个索引列长度限制为767字节(bytes),所有组成索引列的长度和不能大于3072字节
myisam引擎的每个索引列长度限制为1000字节,所有组成索引列的长度和不能大于1000字节
varchar的最大长度是指字符长度,若数据库字符集为utf-8,则一个字符占3个bytes。因此在utf-8字符集下,innodb引擎创建的单列索引长度不能超过255个字符
mysql版本不同而导致的索引长度限制不同
在MySQL5.5版本,引入了innodb_large_prefix,用来禁用大型前缀索引,以便与不支持大索引键前缀的早期版本的InnoDB兼容
开启innodb_large_prefix可以使单索引的长度限制达到3072字节(但是联合索引总长度限制还是3072字节),禁用时单索引的长度限制为767字节
在MySQL5.5版本与MySQL5.6版本,innodb_large_prefix是默认关闭的,在MySQL5.7及以上版本则默认开启
在MySQL8.0版本中,innodb_large_prefix已被移除
这就是我在自己机器(MySQL8.0)上可以创建1024字符(utf8字符集下表示3072字节)长的索引,而在服务器(MySQL5.5)上不行的原因
现在越来越多的服务器mysql使用utf8mb4格式,如果建立索引,就老版本的mysql就更小了,utf8mb4使用的4个字节长度,767/4=191.75,也就是191了,5.5以下版本不支持索引前缀的情况下,需要建立索引的varchar字段长度最多也就191了
测试索引长度限制的脚本:
use test;
drop table if exists test_index_len;
create table
test_index_len(long_char varchar(1025) primary key) ENGINE=InnoDB charset=utf8;
use test;
drop table if exists test_index_len;
create table
test_index_len(long_char varchar(24),origin_str varchar(1000),key test_index(long_char, origin_str)) ENGINE=InnoDB charset=utf8;
MySQL索引长度限制(转)-时间长就忘记了相关推荐
- mysql 索引太长_修改Mysql索引长度限制
mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...
- Mysql 唯一索引长度_关于mysql索引长度的相关内容总结
MySQL优化之-索引具体代码分析:索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型.根据存储引擎定义每个表的最大索引数和最大索引长度.所有存 ...
- mysql索引长度超过767bytes问题解决。Specified key was too long; max key length is 767 bytes
mysql索引长度超过767bytes问题解决. 错误信息: Specified key was too long; max key length is 767 bytes MySQL的InnoD ...
- mysql字段的区分度_详解MySQL索引长度和区分度之间的平衡,值得收藏
概述 前面我们讲了怎么去计算索引所占用的长度?那么换个方式想?索引又应该设置多少长度比较合理呢? 区分度与索引长度的权衡 首先索引长度和区分度是相互矛盾的, 索引长度太短,那么区分度就很低,吧索引长度 ...
- mysql设置索引长度_修改Mysql索引长度限制
mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...
- mysql 索引长度限制_修改Mysql索引长度限制
mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...
- mysql 索引长度tips innodb和myisam引擎
由于开发人员对索引认识不深或忽略,还有版本不同等问题,在生产环境中创建表失败,引发了一些问题.归纳了一下 测试环境 mysql> select version(); +------------+ ...
- Mysql 索引长度限制
在设置 utf8mb4 字段的字符长度时,可能会抛出一个异常:"Specified key was too long; max key length is 1000 bytes". ...
- 技术分享 | MySQL 索引长度限制的案例
作者:刘晨 网名 bisal ,具有十年以上的应用运维工作经验,目前主要从事数据库应用研发能力提升方面的工作,Oracle ACE ,拥有 Oracle OCM & OCP .EXIN Dev ...
最新文章
- 你想要的宏基因组-微生物组知识全在这(180801)
- JAVA传递子类参数,在Java中,是否可以通过传递超类方法中使用的参数的子类来覆盖方法?...
- java date显示格式_Java如何显示不同格式的日期?
- boost::sort模块实现spreadsort 双排序示例
- Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)
- 安全专家教你如何利用Uber系统漏洞无限制的免费乘坐?
- linux设备:cdev和kobj_map
- hashmap hash冲突怎么解决_HashMap原理及冲突之简谈
- 《软件调试》读书笔记:第13章 硬错误和蓝屏
- React-组件的生命周期
- Linux下更新libnss3的代码,yum安装firefox错误libnssutil3.s
- 【STM32】【STM32CubeMX】STM32CubeMX的使用之一:工程建立之点亮你的LED
- 6-3 断言与防御式编程
- oracle 10G表空间创建的步骤
- redis desktop manager 集群_Redis Manager(2.0) —— Redis 运维利器
- conda 安装本地包_export包本地安装以及R包被CRAN移除后如何继续安装
- python-MongoDB可视化工具Robomongo 和 Mongochef
- html实例,实现表单
- 在四位共阴极数码上显示“2 3 5 8”四个数字
- $splay$学习总结$QwQ$
热门文章
- Linux sudo命令配置与使用
- 电路设计_单火线技术资料汇总
- 2018年15大互联网趋势,你的技术方向走对了吗?
- 2021年安全员-C证模拟试题及安全员-C证模拟考试题库
- python在同一行输入n个数转义符_Python
- HarmonyOS服务卡片——残奥会卡片
- 2022-2027年中国资产管理行业市场调研及未来发展趋势预测报告
- 2022-2027年中国PKI行业市场调研及未来发展趋势预测报告
- makefile中的#.SILENT: 有什么用
- 数据库助手连接MySQL设置_数据库简易设置助手下载_数据库简易设置助手官方版下载_3DM单机...