如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:
TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小
所以要知道一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。
在老版本的MySQL 3.22中,MySQL的单表限大小为4GB,当时的MySQL的存储引擎还是ISAM存储引擎。但是,当出现MyISAM存储引擎之后,也就是从MySQL 3.23开始,MySQL单表最大限制就已经扩大到了64PB了(官方文档显示)。也就是说,从目前的技术环境来看,MySQL数据库的MyISAM存储 引擎单表大小限制已经不是有MySQL数据库本身来决定,而是由所在主机的OS上面的文件系统来决定了。innodb的可以用以下方式设置[mysqld]
innodb_data_file_path = ts #用来容纳InnoDB数据表的表空间:可能涉及一个以上的文件;每一个表空间文件的最大长度都必须以B,MB,GB为单位给出;表空间文件的名字必须以分号隔开;最后一个表空间文件还以带有一个autoextend属性和一个最大长度(max:n)。如:ibdata1:1Gibdata2:1G:autoextend:max:2G。默认设置是ibdata1:10M:autoextend
innodb_autoextend_increment = n #带有autoextend属性的表空间文件每次加大多少兆字节(默认是8MB),该属性不涉及具体的数据表文件,那些文件的增大速度相对是比较小的
示例:
innodb_data_file_path=ibdata1:50Mibdata2:50M:autoextend
myisam:
与系统有关
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)