MySQL索引长度限制原理解析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了MySQL索引长度限制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下索引TextField是不支持建立索引的MySQL对索
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
电脑网页无法连接服务器怎么办
手机矿机软件开发公司
网络安全大赛实景图
pvgis数据库
百度国产化数据库
软件开发实习生答辩
中国银行 软件开发 待遇
网维网吧服务器
地球末日怎么连接不到服务器
master数据库恢复
数据库定义变量的关键字
影院售票系统数据库设计
cp软件开发定制
bch网络安全吗
苹果服务器连不上
一个网络安全的解决方法
数据库占用内存过大
计算机网络安全防范手段
卫生技工二级网络技术述职报告
蓓优蜜海南互联网科技有限公司
暖暖服务器
网络技术公司工作环境
服务器及笼
DMIT服务器没有响应
软件开发概要设计文档
软件开发的发展与前景
用8k纸花网络安全手抄报
北京智能土地资产管理软件开发
服务器应急管理接口的技术
引用相同名字下的数据库