MySQL索引长度限制原理解析
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍了MySQL索引长度限制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下索引TextField是不支持建立索引的MySQL对索
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
网络安全应届生月薪
网络安全工作会上讲话
用什么软件编写软件开发文档
银行网络安全工程师面试
数据库被提权怎么办
60g数据库恢复要多久
软件开发质量控制标准
我的世界狼人杀服务器
提升青少年网络安全素养
如何发布金数据库
天津hp服务器阵列卡安装
登录服务器多节点并行跑程序
网络安全设备介绍
易联网络技术
越南服务器
网络安全竞赛的目标
帮助信息网络安全犯罪
深圳2011服务器散热器哪家好
石狮网络安全的手抄报
终端设备网络安全股票
5g题库之软件开发应知应会
输入网络安全密匙键盘无响应
微信获取服务器地址失败
服务器上显示数据库命令
大公报数据库介绍
软件开发自学能学会吗
群晖服务器接投影仪
剑网三 连接服务器失败
地磅系统显示数据库错误
网络安全手抄报上应该写什么