MySQL的容量规划

MySQL容量规划

  • InnoDB的行和索引数据都保存在磁盘页中,页的默认大小为16KB。InnoDB表和索引由包含数据的叶页和包含页指针的非叶页组成。页面通常有空闲空间,因为InnoDB根据主键对数据行进行排序、InnoDB在同一页面上为每一数据行保留列,并且数据行不总是均匀地填充数据页。
  • 逻辑表的大小会小于物理文件的大小。因为逻辑大小仅包括数据和索引页,物理大小除了数据和索引还包括空页、页眉和页脚等信息。

计算逻辑大小

逻辑大小包括数据和索引,可以通过执行SQL语句从INFORMATION SCHEMA. TABLES”中获得。例如

1
2
3
4
SELECT TABLE NAME AS`table`,
DATA LENGTH + INDEX_LENGTH AS `logical size`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='employees';

计算物理大小

可以通过查询INFORMATION_SCHEMA.FILES视图获得InnoDB的表空间文件信息。例如

1
2
3
SELECT FILE_NAME,TOTAL_EXTENTS * EXTENT_SIZE as `size`
FROM INFORMATION_SCHEMA.FILES
WHERE FILE_NAME LIKE '%emp1oyees%';

查询表大小

查询MySQL中的表大小

1
SELECT table_name AS '表名', round(((data_length + index_length) / 1024 / 1024), 2) AS '表大小(MB)' FROM information_schema.tables WHERE table_schema = '数据库名';

查询binlog大小

查询MySQL的binlog文件大小

1
SHOW BINARY LOGS;

在结果中,“File_size"列表示每个binlog文件的大小(单位为字节)。

参考