MySQL索引长度限制原理解析
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了MySQL索引长度限制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下索引TextField是不支持建立索引的MySQL对索
千家信息网最后更新 2026年11月02日MySQL索引长度限制原理解析
这篇文章主要介绍了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)上不行的原因
测试索引长度限制的脚本:
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;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
索引
长度
限制
字节
字符
版本
引擎
学习
支持
前缀
字符集
就是
utf-8
参考
原理
不同
不行
最大
代码
价值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
上海睿民互联网科技有限公司
亿人帮互联网科技有限公司
互联网和科技技术
科技与互联网
互联网 科技创新
互联网科技视频
朗涯互联网科技
深圳齐家互联网科技
美国互联网黑科技
互联网科技上市公司
科技互联网公司logo
互联网汽车科技小镇
宁波青枫互联网科技有限公司
互联网科技公司实习生
宜昌元轩互联网科技有限公司
科技大学互联网
济南小医互联网科技有限公司招聘
易租星互联网科技有限公司
同城互联网络科技
互联网科技工作委员会毛军
互联网公司 科技公司
美国互联网前沿科技
四个字互联网科技公司取名
知域互联网科技有限公司大骗子
高科技互联网发展前景如何
数字互联网科技有限公司
广东猫王互联网科技有限公司电话
中国主要互联网科技公司
互联网科技企业文化