📅  最后修改于: 2023-12-03 14:57:56.079000             🧑  作者: Mango
在 MySQL 中,我们可以通过以下几种方式来返回表的大小信息:
SHOW TABLE STATUS LIKE 'table_name';
该命令会返回包含表信息的一张表格,表中包含了多个列,其中 Data_length
和 Index_length
分别表示数据和索引占用的空间大小,单位为字节。可以将两者相加,得到表的总大小。
示例代码:
SHOW TABLE STATUS LIKE 'users';
输出结果:
+-------+--------+---------+------------+--------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+-------+--------+---------+------------+--------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
| users | InnoDB | 10 | Dynamic | 688248 | 91 | 62899200 | 0 | 1048576 | 20971520 | NULL | 2022-01-01 00:00:00 | 2022-01-01 00:00:00 | NULL | utf8_general_ci | NULL | | |
+-------+--------+---------+------------+--------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
SELECT COUNT(*) FROM table_name;
该命令会返回表中的总行数,我们可以根据每行的平均大小来计算出表的总大小。
示例代码:
SELECT COUNT(*) FROM users;
输出结果:
+----------+
| COUNT(*) |
+----------+
| 688248 |
+----------+
SELECT table_name, CONCAT((data_length + index_length)/1024/1024, 'MB') AS table_size FROM information_schema.tables WHERE table_schema = 'database_name' AND table_name = 'table_name';
该命令会返回表的名称和大小信息,其中 table_schema
和 table_name
分别表示所属数据库和表名,data_length
和 index_length
分别表示数据和索引占用的空间大小,单位为字节。
示例代码:
SELECT table_name, CONCAT((data_length + index_length)/1024/1024, 'MB') AS table_size FROM information_schema.tables WHERE table_schema = 'testdb' AND table_name = 'users';
输出结果:
+-----------+------------+
| table_name| table_size |
+-----------+------------+
| users | 60.12MB |
+-----------+------------+
以上是三种常见的方法,你可以根据自己的需要选择不同的方式来返回表的大小信息。