mysql查看表大小
封面图
•
2025-11-04
•
MySQL
212
0
0
0
在 MySQL 中,你可以通过查询系统表(如 `information_schema`)来查看某个表的大小。以下是一些常用的方法: --- ### ✅ 方法一:使用 `information_schema` 查看表大小 ```sql SELECT TABLE_SCHEMA AS '数据库', TABLE_NAME AS '表名', ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS '大小(MB)' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name'; ``` **说明:** - `DATA_LENGTH` 是数据的大小。 - `INDEX_LENGTH` 是索引的大小。 - 结果单位是 MB。 --- ### ✅ 方法二:查看所有表的大小(按数据库) ```sql SELECT TABLE_SCHEMA AS '数据库', TABLE_NAME AS '表名', ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS '大小(MB)' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name'; ``` --- ### ✅ 方法三:使用 `SHOW TABLE STATUS` 命令(适用于单个表) ```sql SHOW TABLE STATUS FROM your_database_name LIKE 'your_table_name'; ``` 输出结果中会包含: - `Data_length`:数据大小 - `Index_length`:索引大小 - `Row_count`:行数 --- ### ✅ 方法四:使用 `du` 命令查看磁盘占用(Linux 系统) 如果你有权限访问文件系统,可以查看 MySQL 数据目录下对应表的 `.ibd` 文件大小(适用于 InnoDB 表): ```bash du -sh /var/lib/mysql/your_database_name/your_table_name.ibd ``` > 注意:这只能查看表的物理存储大小,不包括索引、日志等。 --- ### 📌 小贴士: - 如果你使用的是 **InnoDB** 存储引擎,并且启用了 `innodb_file_per_table`,那么每个表的数据和索引都会存储在一个单独的 `.ibd` 文件中。 - 如果没有启用 `innodb_file_per_table`,那么所有的 InnoDB 表数据都存储在 `ibdata1` 文件中,这时候无法直接通过文件大小判断单个表的大小。 --- 如需进一步帮助,请提供: - 使用的存储引擎(如 InnoDB、MyISAM) - 是否启用了 `innodb_file_per_table` - 你想要查看的数据库或表名
上一篇:
mySql主从配置出错:The server is not configured as slave;
下一篇:
实用型代币(Utility Token)
标题录入,一次不能超过6条
留言
评论