mysql创建不限制大小的表,关于mysql:MySQL数据库表各种大小限制小结

本文所有条目总结均来自mysql5.6的官网英文文档:

table-size-limit

1. MySQL表的列数限度

1.1 MySQL硬性限度每个表最大4096个列

1.2 InnoDB存储引擎的束缚: 每个表最大1017个列;

2. MySQL表的每行数据的限度

2.1 MySQL表限度row size最大 65535个字节

2.2 InnoDB限度row size最大半页, 默认页大小16K, 也就是 row size < 8K;

3. MySQL表总数据量的限度

3.1 一个表的总大小限度取决于操作系统的文件限度

1) windows fat32的话, 最大就是4G

如果要想超过4G, 在64位windows上应用NTFS ;

2) 其余的windows上的文件数的限度等

在Windows上,表空间文件的门路(包含文件名)不能超过MAX_PATH限度。

在Windows 10之前,MAX_PATH的限度是260个字符。从Windows 10 1607版本开始,常见的Win32文件和目录函数中删除了MAX_PATH限度,然而必须启用新的行为。

3.2 默认MyISAM数据和索引文件最大到256TB,但此限度可改为最大65536TB

3.3 InnoDB的表大小限度:64T(取决于页大小, 详见下5)

4. MySQL数据库的表个数:无限度(InnoDB容许40亿个表)

MySQL对表的数量没有限度。

底层文件系统可能对示意表的文件数量有限度。

单个存储引擎可能会施加特定于引擎的束缚: InnoDB容许多达40亿个表

5. 综上-总结InnoDB的限度

5.1 MySQL5.6当前容许InnoDB表最多1017个列

5.2 一个InnoDB表最多容许64个二级索引

5.3 默认索引前缀长度最多767bytes

5.4 联结索引最多容许16个列, 多了报错

5.5 InnoDB的最大行大小为半页(小于8K-默认)

因为默认页大小为16K, 要求是小于half page size, 就是小于8K;

innodb_page_size能够通过这个批改为4K, 8K; 这样的话, rowsize 就限度为小于 2K, 4K了;

尽管InnoDB外部反对大于65,535字节的行大小,但MySQL自身对所有列的合并大小施加了65,535的行大小限度。-?跨页?另设置?

5.6 innoDB日志文件的最大组合大小是512G

5.7 InnoDB表空间大小限度64T(表空间最大大小也是表的最大大小)

最小表空间大小略大于10MB

最大表空间大小取决于InnoDB的页面大小:

InnoDB Page Size

Maximum Tablespace Size

4KB

16TB

8KB

32TB

16KB

64TB

参考1: Limits on Table Column Count and Row Size

参考2: Limits on Table Size

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值