1、在查询表占用空间大小之前,我们需要了解一下MySQL的information_schema库:information_schema这张数据表保存了MySQL服务器所有数据库的信息。例如:数据库名,数据库的表,表栏的数据类型与访问权限等。
2、在了解了information_schema库的意义后,我们就可以借助该库来进行相关数据表的信息查询了。下面我们以一张有1.7亿条数据的大表为例来查询一下它占用的存储空间有多大,这张表的信息如下:
3、首先,切换到information_schema库,然后使用:select concat(round(sum(data_len爿讥旌护gth/1024/1024/1024),2),'G') as data from tables where table_schema='shark' and table_name = 'shark_user';也就是从information_schema库中的tables表中查询table_schema='shark'这个库中shark_user表的详细信息。查询结果如下,我们看到1.7亿数据表占用的存储空间是23.12亿,当然具体占用空间的大小不仅仅与数据记录的多少有关,还与表字段多少,每个字段存储大小多少有关,大家知道方法后可以自行测试。
4、如果我们想一次性查出某个库中所有表分别块悼对萱占用多少存储空间,那么可以使用:select table_name, concat(round(sum(data_lengt茑霁酌绡h/1024/1024/1024),2),'G') as data from tables where table_schema='shark' group by table_name order by data desc;直接在tables表中查询table_schema='shark'这个库,然后再group by table_name order by data desc就可以。详情如下图所示:
5、经过以上介绍想必大家对MySQL查询表占用多大空间已经很清楚了,那就找个时间自己手动测试一下吧,随便多了解一下information_schema库的别的信息。