国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

如何在磁盘上查找 MySQL 表的大小

发布时间:2019/09/03标签:   磁盘    点击量:

原标题:如何在磁盘上查找 MySQL 表的大小
我想晓得 MySQL 表在磁盘上占用几多空间,但看起来很噜苏。不该该在 INFORMATION_SCHEMA.TABLES 中供给这些信息吗?没那末简略!这个看似简略的成绩现实上在 MySQL 中十分庞杂。MySQL 支撑很多存储引擎(此中一些基本不在磁盘上存储数据), 差别的存储数据格局。比方,InnoDB 存储引擎为 MySQL 5.7 供给了三种“基础”格局,此中包括 row_formats 和两种可紧缩的品种。简化一下:咱们怎样在磁盘上查找存储在其本人的表空间中的 InnoDB 表的表巨细(条件是 innodb_file_per_table=1 )。在咱们失掉谜底之前,先展现经过 sysbench 运转事后取得的图表(批量数据拔出表):

技术分享 | 在磁盘上查找 MySQL 表的大小
此图表现了从 INFORMATION_SCHEMA.TABLES 猎取的 data_length 和 index_length 所界说的表巨细。能够预期,跟着数据的增加,表格会腾跃增加(偶然会增添 10GB 或更多)。该图表与磁盘上数据的变更方法不婚配,它逐步增加(如预期):-rw-r-----1mysqlmysql220293234688Jan2517:03sbtest1.ibd-rw-r-----1mysqlmysql220310011904Jan2517:03sbtest1.ibd-rw-r-----1mysqlmysql222499438592Jan2517:07sbtest1.ibd正如咱们从这个试验中看到的那样,MySQL 并没有真正的及时保护 data_length 和 index_length 的值,而是按期革新它们 - 并且不规矩地革新它们。图表的后半局部一些数据革新变得愈加法则。这与图表的第一局部差别,后者仿佛每次有 10% 的行变动时,就更新一次统计信息。table_rows, data_free 或 update_time ,它们也是及时更新的。要在 MySQL 5.7猎取 information_schema 猎取到更正确的及时信息,须要做两件事: 禁用 innodb_stats_persistent 启用 innodb_stats_on_metadata这二者都市带来严峻的价值。禁用长久性统计信息象征着每次效劳器启动时 InnoDB 都必需革新统计信息,这价值很大,而且能够会在从新启动之间发生不稳固的查问打算。那有没有更好的方法呢?现实证实有。能够经过 INNODB_SYS_TABLESPACES 检查表空间信息表以检查现实文件巨细。与 index_length 和 data_length 差别, INNODB_SYS_TABLESPACES 及时更新,无需特别设置:mysql>select*fromINFORMATION_SCHEMA.INNODB_SYS_TABLESPACESwherename='sbinnodb/sbtest1'\G***************************1.row***************************SPACE:42NAME:sbinnodb/sbtest1FLAG:33FILE_FORMAT:BarracudaROW_FORMAT:DynamicPAGE_SIZE:16384ZIP_PAGE_SIZE:0SPACE_TYPE:SingleFS_BLOCK_SIZE:4096FILE_SIZE:245937209344ALLOCATED_SIZE:2459372666881rowinset(0.00sec)应用这个表的利益是,它还处置新功效 “InnoDB 页紧缩”,准确表现了 file_size (磁盘上的逻辑文件巨细)和 allocated_size(为此文件调配的空间,而且能够明显减少)之间的差别。最初,让咱们看一下差别的 InnoDB 紧缩方法怎样影响 information_schema 中供给的信息。mysql>select*fromINFORMATION_SCHEMA.INNODB_SYS_TABLESPACESwherename='sbinnodb/testcomp'G***************************1.row***************************SPACE:48NAME:sbinnodb/testcompFLAG:33FILE_FORMAT:BarracudaROW_FORMAT:DynamicPAGE_SIZE:16384ZIP_PAGE_SIZE:0SPACE_TYPE:SingleFS_BLOCK_SIZE:4096FILE_SIZE:285212672ALLOCATED_SIZE:1130045441rowinset(0.00sec)

版权信息Copyright ? IT技术教程 版权所有??? ICP备案编号:鲁ICP备09013610号