• 查看Mysql数据库数据量大小、表大小、索引大小


    通过MySQL的information_schema数据库,可查询数据库中每个表占用的空间、表记录的行数;
    该库中有一个TABLES表,这个表主要字段分别是:
    TABLE_SCHEMA:数据库名
    TABLE_NAME:表名
    ENGINE:所使用的存储引擎
    TABLES_ROWS:记录数
    DATA_LENGTH:数据大小
    INDEX_LENGTH:索引大小
    其他字段请参考MySQL的手册,查看一个表占用空间的大小,那就相当于是数据大小 + 索引大小 。

    查看所有库的大小

    mysql> use information_schema;
    
    Reading table information for completion of table and column names
    
    You can turn off this feature to get a quicker startup with -A
    
     
    
    Database changed
    
    mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;
    
    +------------+
    
    | data       |
    
    +------------+
    
    | 550.82MB   |
    
    +------------+
    
    1 row in set (0.17 sec)
    

    查看指定库的大小

    mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='mysql';
    
    +---------+
    
    | data    |
    
    +---------+
    
    | 0.70MB  |
    
    +---------+
    
    1 row in set (0.00 sec)
    

    查看指定库的指定表的大小

    mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='mysql' and table_name='user';
    
    +---------+
    
    | data    |
    
    +---------+
    
    | 0.00MB  |
    
    +---------+
    
    1 row in set (0.00 sec)
    

    查看指定库的索引大小

    mysql> SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' FROM TABLES WHERE table_schema = 'mysql';
    
    +------------------+
    
    | Total Index Size |
    
    +------------------+
    
    | 0.10 MB          |
    
    +------------------+
    
    1 row in set (0.00 sec)
    

    查看指定库的指定表的索引大小

    mysql> SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' FROM TABLES WHERE table_schema = 'mysql' and table_name='user';
    
    +------------------+
    
    | Total Index Size |
    
    +------------------+
    
    | 0.00 MB          |
    
    +------------------+
    
    1 row in set (0.00 sec)
    
    mysql> show create table mysql.userG
    
    *************************** 1. row ***************************
    
    Table: user
    
    Create Table: CREATE TABLE `user` (
    
    `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
    
    `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
    
    `Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
    
    `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Reload_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Shutdown_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Process_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `File_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Show_db_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Super_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Repl_client_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Create_user_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    `ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
    
    `ssl_cipher` blob NOT NULL,
    
    `x509_issuer` blob NOT NULL,
    
    `x509_subject` blob NOT NULL,
    
    `max_questions` int(11) unsigned NOT NULL DEFAULT '0',
    
    `max_updates` int(11) unsigned NOT NULL DEFAULT '0',
    
    `max_connections` int(11) unsigned NOT NULL DEFAULT '0',
    
    `max_user_connections` int(11) unsigned NOT NULL DEFAULT '0',
    
    `plugin` char(64) COLLATE utf8_bin DEFAULT 'mysql_native_password',
    
    `authentication_string` text COLLATE utf8_bin,
    
    `password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    
    PRIMARY KEY (`Host`,`User`)
    
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
    
    1 row in set (0.00 sec)
    
    mysql> select count(*) from mysql.user;
    
    +----------+
    
    | count(*) |
    
    +----------+
    
    | 20       |
    
    +----------+
    
    1 row in set (0.00 sec)
    

    查询指定数据库中每个表的总行数,数据大小,索引大小和总大小

    mysql> SELECT CONCAT(table_schema,'.',table_name) AS 'Table Name', CONCAT(ROUND(table_rows/1000000,4),'M') AS 'Number of Rows', CONCAT(ROUND(data_length/(1024*1024*1024),4),'G') AS 'Data Size', CONCAT(ROUND(index_length/(1024*1024*1024),4),'G') AS 'Index Size', CONCAT(ROUND((data_length+index_length)/(1024*1024*1024),4),'G') AS'Total'FROM information_schema.TABLES WHERE table_schema LIKE 'mysql';
    
    +---------------------------------+----------------+-----------+------------+---------+
    
    | Table Name                      | Number of Rows | Data Size | Index Size | Total   |
    
    +---------------------------------+----------------+-----------+------------+---------+
    
    | mysql.columns_priv                          | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.db                                    | 0.0001M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.event                                 | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.func                                  | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.general_log                           | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.help_category                         | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.help_keyword                          | 0.0006M | 0.0001G | 0.0000G | 0.0001G |
    
    | mysql.help_relation                         | 0.0012M | 0.0000G | 0.0000G | 0.0000G |
     
    | mysql.help_topic                            | 0.0006M | 0.0005G | 0.0000G | 0.0006G |
    
    | mysql.ndb_binlog_index                      | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.plugin                                | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.proc                                  | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.procs_priv                            | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.proxies_priv                          | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.servers                               | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.slow_log                              | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.tables_priv                           | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.time_zone                             | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.time_zone_leap_second                 | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.time_zone_name                        | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.time_zone_transition                  | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.time_zone_transition_type             | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    | mysql.user                                  | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
    
    +---------------------------------+----------------+-----------+------------+---------+
    
    23 rows in set (0.00 sec)
    

    查询数据库指定表的数据部分大小,索引部分大小和总占用磁盘大小

    mysql> SELECT
    
    a.table_schema ,
    
    a.table_name ,
    
    concat(round(sum(DATA_LENGTH / 1024 / 1024) + sum(INDEX_LENGTH / 1024 / 1024) ,2) ,'MB') total_size ,
    
    concat(round(sum(DATA_LENGTH / 1024 / 1024) , 2) ,'MB') AS data_size ,
    
    concat(round(sum(INDEX_LENGTH / 1024 / 1024) , 2) ,'MB') AS index_size
    
    FROM
    
    information_schema. TABLES a
    
    WHERE
    
    a.table_schema = '数据库'
    
    AND a.table_name = '表名';
    
    +----------------+-------------+-----------+-----------+------------+
    
    | table_schema   | table_name  | total_size | data_size | index_size|
    
    +---------------+--------------+-----------+-----------+------------+
    
    | mysql         | user         | 0.00MB    | 0.00MB    | 0.00MB     |
    
    +---------------+---------------+-----------+-----------+-----------+
    
    1 row in set (0.00 sec)
    
  • 相关阅读:
    Java多线程:ThreadLocal
    selenium安装环境
    http常用标签
    http与https区别,get与post请求区别
    测试评审清单
    python面向对象之方法
    python正则之模式re.I re.M
    python 正则之字母匹配
    python正则之特殊表达式 .*?{}
    python正则之match search findall
  • 原文地址:https://www.cnblogs.com/gaohongyu/p/14120261.html
Copyright © 2020-2023  润新知