查看mysql库大小,表大小,索引大小

说明:

通过MySQL的 information_schema 数据库,可查询数据库中每个表占用的空间、表记录的行数;该库中有一个 TABLES 表,这个表主要字段分别是:

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

其他字段请参考MySQL的手册,查看一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 。

查看所有库的大小

mysql> use information_schema;
Database changed
mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),‘MB‘) as data  from TABLES;
+----------+
| data     |
+----------+
| 104.21MB |
+----------+
1 row in set (0.11 sec)

查看指定库的大小

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

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

mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),‘MB‘) as data  from TABLES where table_schema=‘jishi‘ and table_name=‘a_ya‘;
+--------+
| data   |
+--------+
| 0.02MB |
+--------+
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 = ‘jishi‘;
+------------------+
| Total Index Size |
+------------------+
| 0.94 MB          |
+------------------+
1 row in set (0.01 sec)

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

mysql> SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ‘ MB‘) AS ‘Total Index Size‘ FROM TABLES  WHERE table_schema = ‘test‘ and table_name=‘a_yuser‘;
+------------------+
| Total Index Size |
+------------------+
| 21.84 MB         |
+------------------+
1 row in set (0.00 sec)
mysql> show create table test.a_yuser\G;
*************************** 1. row ***************************
       Table: a_yuser
Create Table: CREATE TABLE `a_yuser` (
  `email` varchar(60) NOT NULL DEFAULT ‘‘,
  `user_name` varchar(60) NOT NULL DEFAULT ‘‘,
  KEY `cc` (`email`(5)),
  KEY `ccb` (`user_name`(5)),
  KEY `ccbc` (`email`(5),`user_name`(5))
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR:
No query specified

mysql> select count(*) from test.a_yuser;
+----------+
| count(*) |
+----------+
|  1073607 |
+----------+
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 ‘test‘;
+---------------+----------------+-----------+------------+---------+
| Table Name    | Number of Rows | Data Size | Index Size | Total   |
+---------------+----------------+-----------+------------+---------+
| test.a_br     | 0.4625M        | 0.0259G   | 0.0171G    | 0.0431G |
| test.a_skuclr | 0.7099M        | 0.0660G   | 0.0259G    | 0.0919G |
| test.a_yuser  | 1.0736M        | 0.0497G   | 0.0213G    | 0.0710G |
| test.test     | 0.0000M        | 0.0000G   | 0.0000G    | 0.0000G |
+---------------+----------------+-----------+------------+---------+
4 rows in set (0.13 sec)
参考网址:

http://www.oschina.net/question/12_3673

http://blog.sina.com.cn/s/blog_4c197d420101fbl9.html

查看mysql库大小,表大小,索引大小,布布扣,bubuko.com

时间: 2024-10-12 04:48:45

查看mysql库大小,表大小,索引大小的相关文章

查看mysql库和表的大小(空间)

use information_schema; 查询所有数据的大小: select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables; 查看指定数据库的大小: select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='DATABASENAME'; 查看指定数据库的某个表的大小:

[转]【mysql监控】查看mysql库大小,表大小,索引大小

本文转自:http://blog.sina.com.cn/s/blog_4c197d420101fbl9.html 查看所有库的大小 mysql> use information_schema; Database changed mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data  from TABLES; +----------+ | data     | +----------+ | 104.21MB

随笔编号-16 MySQL查看表及索引大小方法

目标:阿里云OS数据库DMS,单个主库最大存储空间为2T.最近公司业务扩展很快,一天数据量达到7.9G左右.要求备份清理历史数据,备份到其他磁盘. 准备: 如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大

如何查看MySQL中每张表占用的空间大小

如题,找到MySQL中的information_schema表,这张表记录了所有数据库中表的信息,主要字段含义如下: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH:数据大小 INDEX_LENGTH:索引大小 如果需要查询所有数据库占用空间大小只需要执行SQL命令: mysql> use information_schema Database changed mysql> SELECT

对MySQL库、表和记录的基本操作

目录 对MySQL库.表和记录的基本操作 对库的简单操作 创建库(增) 修改库(改) 查看库(查) 切换库(切换) 修改库名的一个小脚本(修改库名) 删除库(删) 对表结构的简单操作 创建表(增) 修改表(改) 查看表(查) 复制表(复制) 删除表(删) 对记录的简单操作 创建记录(增) 修改记录(改) 查看记录(查) 删除记录(删) 对MySQL库.表和记录的基本操作 对库的简单操作 创建库(增) # 创建库,charset指定编码格式.[]中为可选项 create database 库名 [

Mysql --库和表的操作

库的增删改查 系统数据库 创建数据库 数据库的相关操作 表的操作 存储引擎介绍(有点多 很啰唆) 表的介绍 表的操作 一.系统数据库 查看系统库: show databases; nformation_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象mysql: 授权库,主要存储

MySQL库、表结构等查询

1.查询所有数据库 SHOW DATABASES; 2.查询库中所有表 写法1: ① USE [DATABASE_NAME]; ② SHOW TABLES; 写法2: SHOW TABLES FROM [DATABASE_NAME] 3. 查询表结构 写法1: ① USE [DATABASE_NAME]; ② SHOW CREATE TABLE [TABLE_NAME]; 写法2: SHOW CREATE TABLE [DATABASE_NAME.TABLE_NAME]; 4. 查询表所有字段

MySQL库和表的管理

MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中performance_schema:服务器性能指标库mysql:记录用户权限,帮助,日志等信息test:测试库 MySQL数据库及表的管理 1.查询所有数据库 mysql> show databases; 2.创建数据库 语法:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name 默认指定编码格式为utf-8 mysql>

MySQL 库、表、记录、相关操作(2)

库.表.记录.相关操作(2) 字段操作 create table tf1( id int primary key auto_increment, x int, y int ); # 修改 alter table tf1 modify x char(4) default ''; alter table tf1 change y m char(4) default ''; # 增加 mysql>: alter table 表名 add 字段名 类型[(长度) 约束]; # 末尾 eg>: alte