zoukankan      html  css  js  c++  java
  • Mysql 查看表数据以及索引大小

    如果想查看 Mysql 数据库的总的数据量或者某个表的数据或者索引大小,可以使用系统库 information_schema 来查询,这个系统库中有一个 TABLES 表,这个表是用来记录数据库中表的大小、行数、索引大小等信息

    mysql > use information_schema;
    Database changed
    mysql > show create table TABLES;
    mysql > desc TABLES;

    表结构如下:

    sql:

    CREATE TEMPORARY TABLE `TABLES` (
       `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
       `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
       `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
       `TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
       `ENGINE` varchar(64) DEFAULT NULL,
       `VERSION` bigint(21) unsigned DEFAULT NULL,
       `ROW_FORMAT` varchar(20) DEFAULT NULL,
       `TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
       `AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
       `DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
       `MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
       `INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL,
       `DATA_FREE` bigint(21) unsigned DEFAULT NULL,
       `AUTO_INCREMENT` bigint(21) unsigned DEFAULT NULL,
       `CREATE_TIME` datetime DEFAULT NULL,
       `UPDATE_TIME` datetime DEFAULT NULL,
       `CHECK_TIME` datetime DEFAULT NULL,
       `TABLE_COLLATION` varchar(32) DEFAULT NULL,
       `CHECKSUM` bigint(21) unsigned DEFAULT NULL,
       `CREATE_OPTIONS` varchar(255) DEFAULT NULL,
       `TABLE_COMMENT` varchar(2048) NOT NULL DEFAULT '',
       `BLOCK_FORMAT` varchar(20) DEFAULT NULL
     ) ENGINE=MEMORY DEFAULT CHARSET=utf8

    这个表的字段很多,常用的字段有下面几个:

    TABLE_SCHEMA:     数据库名
    TABLE_NAME:     表名
    ENGINE:       所使用的存储引擎
    TABLES_ROWS:   记录行数
    DATA_LENGTH:    表大小
    INDEX_LENGTH:   索引大小

    一个表的大小 = 数据量 + 索引大小

    1、可以查询数据库的数据行数、表空间、索引空间,如下,将 [数据库名] 替换成你自己的数据库名即可。

    SELECT TABLE_SCHEMA AS '库名',
    CONCAT(ROUND(TABLE_ROWS/10000, 2), ' 万行') AS '行数',
    CONCAT(ROUND(SUM(DATA_LENGTH)/(1024*1024*1024), 2), ' GB') AS '表空间',
    CONCAT(ROUND(SUM(INDEX_LENGTH)/(1024*1024*1024), 2), ' GB') AS '索引空间',
    CONCAT(ROUND(SUM(DATA_LENGTH+INDEX_LENGTH)/(1024*1024*1024),2),' GB') AS'总空间'
    FROM information_schema.TABLES WHERE TABLE_SCHEMA = [数据库名];

    2、当然也可以不汇总,查询下各个表的情况进行分析,如下,将 [数据库名] 替换成你自己的数据库名即可。

    SELECT TABLE_NAME AS '表名',
    CONCAT(ROUND(TABLE_ROWS/10000, 2), ' 万行') AS '行数',
    CONCAT(ROUND(DATA_LENGTH/(1024*1024*1024), 2), ' GB') AS '表空间',
    CONCAT(ROUND(INDEX_LENGTH/(1024*1024*1024), 2), ' GB') AS '索引空间',
    CONCAT(ROUND((DATA_LENGTH+INDEX_LENGTH)/(1024*1024*1024),2),' GB') AS'总空间'
    FROM information_schema.TABLES WHERE TABLE_SCHEMA = [数据库名] ORDER BY TABLE_ROWS DESC;

    3、也可以查询下某个表的情况,如下,将 [数据库名] 和 [数据表名] 替换成你自己的数据库名和数据表名即可。

    SELECT TABLE_NAME AS '表名',
    CONCAT(ROUND(TABLE_ROWS/10000, 2), ' 万行') AS '行数',
    CONCAT(ROUND(DATA_LENGTH/(1024*1024*1024), 2), ' GB') AS '表空间',
    CONCAT(ROUND(INDEX_LENGTH/(1024*1024*1024), 2), ' GB') AS '索引空间',
    CONCAT(ROUND((DATA_LENGTH+INDEX_LENGTH)/(1024*1024*1024),2),' GB') AS'总空间'
    FROM information_schema.TABLES WHERE TABLE_SCHEMA = [数据库名] AND TABLE_NAME = [数据表名] ORDER BY TABLE_ROWS DESC;
  • 相关阅读:
    【java】浅谈java内部类
    【java】java反射初探 ——“当类也学会照镜子”
    【java】关于java类和对象,你想知道的在这里!
    【javascript】谈谈HTML5: Web-Worker、canvas、indexedDB、拖拽事件
    【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
    【javascript】详解变量,值,类型和宿主对象
    【javascript】异步编年史,从“纯回调”到Promise
    [转] golang 字符串比较是否相等
    because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checkin
    desktoplayer.exe病毒及d:w7rtmasewcpsilmerged tu tsystem.cpp的解决方案
  • 原文地址:https://www.cnblogs.com/lyc94620/p/10114365.html
Copyright © 2011-2022 走看看