MySQL索引的索引长度问题具体介绍
技术百科
黄舟
发布时间:2017-03-04
浏览: 次 mysql的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制。
在MyISAM表中,创建组合索引时,创建的索引长度不能超过1000,注意这里索引的长度的计算是根据表字段设定的长度来标量的,例如:
create table test(id int,name1 varchar(300),name2 varchar(300),name3 varchar(500))charset=latin1 engine=myisam; create index test_name on test(name1,name2,name3);
此时报错:
Specified key was too long;max key length is 1000 bytes.
修改表结构:
alter table test convert to charset utf8; create index test_name3 on test(name3).
此时warning:
Specified key was too long;max key length is 1000 bytes.
但是索引创建成功,查看表结构可以看到创建的索引是一个前缀索引:
‘key test_name3(name3(333))’
得出的结论是:对于myisam
表,如果创建组合索引,所创建的索引长度和不能超过1000 bytes,否则会报错,创建失败;对于myisam的单列索引,最大长度也不能超过1000,否则会报警,但是创建成功,最终创建的是前缀索引(取前333个字节)。
在Innodb表中,创建组合索引:
create table test1(id int,name1 varchar(300),name2 varchar(300),name3 varchar(500))charset=latin1 engine=innodb; create index test1_name on test(name1,name2,name3);
此时给出
warning:Specified key was too long;max key length is 767 bytes.
修改表结构:
alter table test1 convert to charset utf8; create index test1_name3 on test(name3).
此时给出
warning:Specified key was too long;max key length is 767 bytes.
得出的结论是:对于创建innodb的组合索引,如果各个列中的长度不超过767,则不再计算所有列的总长度,如果有超过767的,则给出报警,索引最后创建成功,但是对于超过767字节的列取前缀索引;对于innodb的单列索引,超过767的,给出warning,最终索引创建成功,取前缀索引(取前255字节)。
以上就是MySQL索引的索引长度问题具体介绍的内容,更多相关内容请关注PHP中文网(www.)!
# 的是
# 是一个
# 是有
# 相关内容
# 则会
# 不超过
# 可以看到
# 不能超过
# 报错
# mysql
# 中文网
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- PhpStorm怎么调试PHP代码_PhpStor
- Win10如何卸载Skype_Win10卸载Sky
- Mac怎么开启“任何来源”_Mac安装未签名应用的
- Win10怎样设置多显示器_Win10多显示器扩展
- Mac的Time Machine怎么用_Mac系统
- Win10怎么关闭自动更新错误弹窗_Win10策略
- 如何在Golang中编写端到端测试_Golang
- 如何在Golang中处理数据库事务错误_回滚和日志
- Windows怎样关闭锁屏广告_Windows关闭
- Windows10系统怎么查看设备管理器_Win1
- Win10系统更新错误0x80240034怎么办
- Win11如何连接Xbox手柄 Win11蓝牙连接
- 如何在 Windows 11 中使用 AlomWa
- Win11怎么设置麦克风权限_允许应用访问Win1
- Windows蓝屏BAD_POOL_HEADER故
- PHP cURL GET请求:正确设置认证与自定义
- 如何使用Golang包导出规则_控制函数和变量可见
- Windows10系统怎么查看硬盘健康_Win10
- php命令行怎么运行_通过CLI模式执行PHP脚本
- c++怎么使用std::tuple存储多元组数据_
- Win11怎么格式化U盘_Win11系统U盘格式化
- Win11怎么关闭SmartScreen_禁用Wi
- Windows10电脑怎么设置电源按钮_Win10
- Windows如何拦截腾讯视频广告_Windows
- c++ try_emplace用法_c++ map
- Win10电脑怎么设置网络名称_Windows10
- php打包exe后无法读取环境变量_变量配置方法【
- 如何在 Go 中比较自定义的数组类型(如 [20]
- Mac如何查看电池健康百分比_Mac系统信息电源检
- php下载安装选zip还是msi格式_两种安装包对
- PHP主流架构如何处理会话管理_Session与C
- Win10怎么关闭自动更新错误重启 Win10策略
- Windows服务持续崩溃怎样修复_系统服务保护机
- Win11麦克风没声音怎么设置_Win11麦克风权
- c++中如何计算坐标系中两点间距离_c++勾股定理
- Win11怎么清理C盘下载文件夹_Win11清理下
- PHP主流架构怎么集成Redis缓存_配置步骤【方
- Win11搜索栏无法输入_解决Win11开始菜单搜
- Python文本编码与解码_跨平台解析说明【指导】
- 如何使用Golang捕获测试日志_Golang t
- MAC如何快速搜索大文件_MAC磁盘空间分析与冗余
- Win10怎样清理C盘浏览器缓存_Win10清理浏
- php删除数据怎么软删除_添加is_del字段标记
- 如何在 IIS 上为 ASP.NET 6 应用排除
- Windows服务无法启动错误1067是什么_进程
- 如何使用Golang实现文件追加操作_向已有文件追
- Mac如何调整Dock栏大小和位置_Mac程序坞个
- c++中的CRTP是什么 c++奇异递归模板模式【
- 如何在Golang中解压文件_Golang com
- C++友元类使用场景_C++类间协作设计方式讲解

QQ客服