查看 MySQL 数据库中每个表占用的空间大小

<p>如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:</p><p>TABLE_SCHEMA : 数据库名</p><p>TABLE_NAME:表名</p><p>ENGINE:所使用的存储引擎</p><p>TABLES_ROWS:记录数</p><p>DATA_LENGTH:数据大小</p><p>INDEX_LENGTH:索引大小</p><p>其他字段请参考MySQL的手册,我们只需要了解这几个就足够了。</p><p>所以要知道一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。</p><p>SQL:</p><p>SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA=&#39;数据库名&#39; AND TABLE_NAME=&#39;表名&#39;</p><p>1、进去指定schema 数据库(存放了其他的数据库的信息)</p><pre class="brush:cpp;toolbar:false">mysql&gt;useinformation_schema; Databasechanged</pre><p>2、查询所有数据的大小</p><pre class="brush:cpp;toolbar:false">mysql&gt;selectconcat(round(sum(DATA_LENGTH/1024/1024),2),&#39;MB&#39;) -&gt;asdatafromTABLES; +-----------+ |data| +-----------+ |6674.48MB| +-----------+ 1rowinset(16.81sec)</pre><p>3、查看指定数据库实例的大小,比如说数据库 forexpert</p><pre class="brush:cpp;toolbar:false">mysql&gt;selectconcat(round(sum(DATA_LENGTH/1024/1024),2),&#39;MB&#39;) -&gt;asdatafromTABLESwheretable_schema=&#39;forexpert&#39;; +-----------+ |data| +-----------+ |6542.30MB| +-----------+ 1rowinset(7.47sec)</pre><p>4、查看指定数据库的表的大小,比如说数据库 forexpert 中的 member 表</p><pre class="brush:cpp;toolbar:false">mysql&gt;selectconcat(round(sum(DATA_LENGTH/1024/1024),2),&#39;MB&#39;)asdata -&gt;fromTABLESwheretable_schema=&#39;forexpert&#39; -&gt;andtable_name=&#39;member&#39;; +--------+ |data| +--------+ |2.52MB| +--------+ 1rowinset(1.88sec)</pre>
RangeTime:0.010287s
RangeMem:205.57 KB
返回顶部 留言