关于MySQL单表支持的最大存储空间
mysql单表支持的最大存储空间大小为多少呢?
其实这个问题要拆分成两个问题。
第一是操作系统所采用的文件系统能支持的单个文件大小,比如:
linux 2.2-intel 32-bit (ext2文件系统) 最大支持2GB
linux 2.4+ (ext3文件系统) 支持4TB
win32 (fat32文件系统) 4GB
win32 (ntfs文件系统) 2TB
第二是存储引擎本身能支持的最大空间大小。比如
InnoDB存储引擎的表空间最大容量为64TB,不具体限制单表的大小,但受限于表空间。
MyISAM最大表尺寸为65536TB,但是在 MySQL5.0版本之前,默认情况下,MyISAM单个表允许的最大尺寸为4GB,你可以通过 SHOW TABLE STATUS 语句或 myisamchk -dv tbl_name 检查表的最大尺寸,如果是4G,可以通过修改 AVG_ROW_LENGTH 和 MAX_ROWS 选项的值来达到目的。MySQL5.0版本后,默认MyISAM表的限制是256TB。修改方法如下:
//创建表时的修改方法
CREATE TABLE tbl_name (
a INTEGER NOT NULL PRIMARY KEY,
b CHAR(18) NOT NULL
) MAX_ROWS = 1000000000 AVG_ROW_LENGTH = 32;
//修改已存在表的方法
ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=15000;
其实这个问题要拆分成两个问题。
第一是操作系统所采用的文件系统能支持的单个文件大小,比如:
linux 2.2-intel 32-bit (ext2文件系统) 最大支持2GB
linux 2.4+ (ext3文件系统) 支持4TB
win32 (fat32文件系统) 4GB
win32 (ntfs文件系统) 2TB
第二是存储引擎本身能支持的最大空间大小。比如
InnoDB存储引擎的表空间最大容量为64TB,不具体限制单表的大小,但受限于表空间。
MyISAM最大表尺寸为65536TB,但是在 MySQL5.0版本之前,默认情况下,MyISAM单个表允许的最大尺寸为4GB,你可以通过 SHOW TABLE STATUS 语句或 myisamchk -dv tbl_name 检查表的最大尺寸,如果是4G,可以通过修改 AVG_ROW_LENGTH 和 MAX_ROWS 选项的值来达到目的。MySQL5.0版本后,默认MyISAM表的限制是256TB。修改方法如下:
//创建表时的修改方法
CREATE TABLE tbl_name (
a INTEGER NOT NULL PRIMARY KEY,
b CHAR(18) NOT NULL
) MAX_ROWS = 1000000000 AVG_ROW_LENGTH = 32;
//修改已存在表的方法
ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=15000;
相关推荐
zhenlq 2020-05-27
herohope 2020-08-18
敏敏张 2020-06-06
mrandy 2020-06-04
lijiawnen 2020-06-04
阿亮 2020-05-28
usepython 2020-05-28
CoderJiang 2020-04-22
予衡飞翔 2020-04-17
gamestart0 2020-04-10
李高峰 2020-05-12
muzirigel 2020-05-11
xiaojiang0 2020-05-10
jiony 2020-05-05
lpfvip00 2020-04-26
wensonlee 2020-04-22
列1 类型1 约束1,update 表名set 列=值 where 条件;eg:update student name=‘李四‘ where id=1;delete from 表名 where 条件;
cyhgogogo 2020-04-16
Jaystrong 2020-03-25
xiaojiang0 2020-02-21