InnoDB限制

简介: InnoDB 限制 Limits MySQL

限制

以下限制基于MySQL 8.0.x

  1. 单表只能有1017个列
  2. 单表最多有64个二级索引
  3. 在使用DYNAMIC或COMPRESSED row format时索引前缀长度最大为3072个字节
  4. 一个组合索引的最大列数为16

如果超过了16个列会会报错:

ERROR 1070 (42000): Too many key parts specified; max 16 parts allowed
  1. 最大行大小略微小于页面的一半

例如:InnoDB的默认innodb_page_size是16KB,那么行大小在8000字节左右。但是对于InnoDB页面大小在64KB时,最大行大小在16000字节左右。对于包含LongBLOB和LONGTEXT类型的列最大行大小不应该超过4GB,对于BLOB和TEXT类型的列,最大行大小不应该超过4GB。
不包括变成列,因为边长列会分页存储。

  1. MySQL强制一行所有列的数据大小不能超过65535个字节,尽管InnoDB支持的最大行大小超过了65535个字节。
  2. 在一些老的操作系统中,单个文件的大小不能超过2GB,那么这个会限制InnoDB的文件空间。在这些操作系统上,可以配置file-per-table为1让每张表有自己的表空间。
  3. InnoDB日志文件的最大组合大小为512GB。
  4. 表空间最小在10MB左右。最大的表空间依赖于InnoDB 页面大小配置。
InnoDB页面大小 最大表空间大小
4KB 16TB
8KB 32TB
16KB 64TB
32KB 128TB
64KB 256TB

为什么有这个限制?
因为InnoDB表空间的基本单位是页面,每个页面有一个页号,这个页号也称为页偏移;页号是一个32位的整数,所以一个表空间最多有2的32次方个页面,将页面个数乘以页面大小就是这个表空间的最大大小,例如:页面大小为16KB也是2的14次方,那么64TB= 16KB * 2^32,其他的依次替换页面大小即可。

  1. InnoDB最大支持2^32个表空间。
  2. 共享表空间最大支持2^32个表。
  3. 表空间文件路径加文件名在Windows上不能超过MAX_PATH定义的最大长度。在Windows10以前,MAX_PATH定义的长度是260个字符。在Windows10的1607版本中 ,普通Win32文件和目录函数的MAX_PATH限制被移除。

参考

  1. https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html
  2. https://blog.jcole.us/2013/01/03/the-basics-of-innodb-space-file-layout/
目录
相关文章
|
8月前
|
移动开发 小程序 JavaScript
uniapp
uniapp
1331 130
|
8月前
|
机器学习/深度学习 人工智能 监控
别让医保钱“乱花”——用数据分析把医疗保险费用算明白!
别让医保钱“乱花”——用数据分析把医疗保险费用算明白!
333 13
|
存储 缓存 关系型数据库
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
2436 57
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
|
11月前
|
运维 监控 Java
初创代购选单体,千万级平台用微服务:一张表看懂架构选型红线
在跨境电商代购系统年交易额超3.2万亿元的背景下,本文对比微服务与单体架构的技术原理、适用场景及实战案例,结合性能、运维、成本等维度,为企业提供架构选型指南,助力实现高效扩展与稳定运营。
|
人工智能 Shell iOS开发
AI Shell:在命令行里“对话” AI ,微软推出将 AI 助手引入命令行的 CLI 工具,打造对话式交互命令行
AI Shell 是一款强大的 CLI 工具,将人工智能直接集成到命令行中,帮助用户提高生产力。AI Shell 支持多种 AI 模型和助手,通过多代理框架提供丰富的功能和灵活的使用模式。
2606 7
|
安全 Java 数据安全/隐私保护
【开题报告】基于SpringBoot的高校实验室管理系统的设计与实现
【开题报告】基于SpringBoot的高校实验室管理系统的设计与实现
1275 0
|
前端开发 JavaScript 开发者
构建工具对比:Webpack与Rollup的前端工程化实践
【10月更文挑战第11天】本文对比了前端构建工具Webpack和Rollup,探讨了它们在模块打包、资源配置、构建速度等方面的异同。通过具体示例,展示了两者的基本配置和使用方法,帮助开发者根据项目需求选择合适的工具。
521 3
|
算法
Raid5数据恢复—Raid5算法简介&raid5磁盘阵列数据恢复案例
Raid5算法也被称为“异或运算”。异或是一个数学运算符,它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。异或的运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)。如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。 异或也叫半加运算,其运算法则相当于不带进位的二进制加法。二进制下用1表示真,0表示假。异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。 异或略称为XOR、EOR、EX-OR,程序中有三种演算子:XOR、xor、⊕。使用方法如下z = x ⊕ y z
Raid5数据恢复—Raid5算法简介&raid5磁盘阵列数据恢复案例
|
安全
常见ip被限制的原因以及解决办法
常见ip被限制的原因以及解决办法
3167 0

热门文章

最新文章