MySQL单表最大限制

摘要:
然而,当MyISAM存储引擎出现时,即从MySQL 3.23开始,MySQL中单个表的最大限制已扩展到64PB。也就是说,从目前的技术环境来看,MySQL数据库的MySQL存储引擎的单表大小限制不再由MySQL数据库本身决定,而是由主机OS上的文件系统决定。Innodb是MySQL中最流行的存储引擎之一,它有两种存储数据的策略:一种是共享表空间存储,另一种是专用表空间存储。默认情况下,MySQL创建的MyISAM表的最大大小为4GB。

  想把一个项目的数据库导出来,然后倒入到自己熟悉的MySQL数据库中进行运行和调试。导出来后,发现sql文件整整有12G多大,忽然想起来,MySQL好像有个叫做容量限制的神奇特性,但是忘了上限是多少了,所以查阅资料得出了如下结果:

  在老版本的 MySQL 3.22 中,MySQL的单表限大小为4GB,当时的MySQL的存储引擎还是ISAM存储引擎。但是,当出现MyISAM存储引擎之后,也就是从 MySQL 3.23 开始,MySQL单表最大限制就已经扩大到了64PB了(官方文档显示)。也就是说,从目前的技术环境来看,MySQL数据库的MyISAM存储引擎单表大小限制已经不是有MySQL数据库本身来决定,而是由所在主机的OS上面的文件系统来决定了。

  而MySQL另外一个最流行的存储引擎之一Innodb存储数据的策略是分为两种的,一种是共享表空间存储方式,还有一种是独享表空间存储方式。当使用共享表空间存储方式的时候,Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成,一个表可以跨多个文件存在,所以其大小限制不再是文件大小的限制,而是其自身的限制。从Innodb的官方文档中可以看到,其表空间的最大限制为64TB,也就是说,Innodb的单表限制基本上也在64TB左右了,当然这个大小是包括这个表的所有索引等其他相关数据。而当使用独享表空间来存放Innodb的表的时候,每个表的数据以一个单独的文件来存放,这个时候的单表限制,又变成文件系统的大小限制了。

以下是从收集到的一点信息,不一定全部准确:
操作系统                                大小限制
win32 w/ FAT/FAT32              2GB/4GB
win32 w/ NTFS                     2TB(可能更大)
Linux 2.2-Intel 32-bit            2GB (LFS: 4GB)
Linux 2.4+                           4TB(ext3)
Solaris 9/10                         16TB
NetWare w/NSS filesystem     8TB
MacOS X w/ HFS+                 2TB

以下是MySQL文档中的内容:
  Windows用户请注意: FAT和VFAT (FAT32)不适合MySQL的生产使用。应使用NTFS。在默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。你可以使用SHOW TABLE STATUS语句或myisamchk -dv tbl_name检查表的最大尺寸。请参见13.5.4节,“SHOW语法”。如果需要使用大于4GB的MyISAM表(而且你的操作系统支持大文件),可使用允许AVG_ROW_LENGTH和MAX_ROWS选项的CREATE TABLE语句。创建了表后,也可以使用ALTER TABLE更改这些选项,以增加表的最大允许容量。

免责声明:文章转载自《MySQL单表最大限制》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.NET Core 3 WPF MVVM框架 Prism系列之事件聚合器【安卓开发】为什么不能往Android的Application对象里存储数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql慢查询日志总结

查看慢查询是否开启: mysql>show variables like '%slow_query_log%'; Variable_name       Value slow_query_log       on slow_query_log_file  日志路径 显示为on,已开启,并且下面写出了日志文件的路径。直接cat对应文件即可查看mysql...

XML导入Access/MySql数据库 XML2OleDb Fred

学校XML课程布置了一个作业“XML导入Access和MySql”,我在网上找到了孟子E章的Xml2OleDb,功能很全面,唯一的不足就是缺少了导入MySql的支持,经过我的完善,补充了该功能。 我的版本是为了交作业,所以去掉了连接字符串自输入,而是固定在web.config里啦。导入MySql的代码与2OleDb有所不同,思路是一样的,下面我贴出来2My...

phpstudy里升级mysql版本到5.7

phpstudy里没有地方可以设置mysql数据库,很多人都疑惑在phpstudy里怎么升级mysql数据库版本,本文就教你如何在phpstudy中升级mysql的版本。 PhpStudy集成环境中的mysql数据库的版本默认是mysql5.5,下面是PhpStudy升级数据库到mysql5.7的方法: 1:备份当前数据库数据,可以导出数据库文件,作为备份...

PCIe固态存储和HDD常见的硬盘性能对比测试

2周测试后,导致以下结果 MySQL-OLTP测试结果:(50表。每个表1000广域网数据,1000个线程) TPS:MySQL在PCIe固态存储上执行是在HDD上执行的5.63倍 writes:MySQL在PCIe固态存储上执行是在HDD上执行的5.58倍 reads:MySQL在PCIe固态存储上执行是在HDD上执行的5.55倍 R...

MySQL-基础

SQL 是一门特殊的语言,专门用来操作关系数据库,不区分大小写 服务器端 安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入 sudo apt-get install mysql-server 启动服务   sudo service mysql start 查看进程中是否存在mysql服务   ps ajx|grep mysql 停止服务   s...

saltstack搭建LAMP架构案例

LAMP架构案例1)环境准备,定义file_roots环境   这个配置会在我们开始安装salt-master的时候,salt-master配置文件中定义: root@King: ~# grep -A 5 file_roots /etc/salt/master # file_roots: # base: # - /srv/salt/ #...