MySQL数据库使用率查询命令

要查询MySQL数据库的使用率,可以使用以下SQL语句:
SELECT table_schema AS 'Database',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)',
ROUND(SUM(data_free) / 1024 / 1024, 2) AS 'Free Space (MB)'
FROM information_schema.tables
GROUP BY table_schema;
这个查询将返回每个数据库的名称、大小(以MB为单位)和可用空间(以MB为单位),这个查询仅适用于InnoDB存储引擎。
解释:
information_schema.tables:这是一个包含有关所有表的信息的系统视图。
table_schema:表示数据库的名称。
data_length:表示表中数据的大小。

index_length:表示表中索引的大小。
data_free:表示表中未使用的空间。
示例输出:
| Database | Size (MB) | Free Space (MB) |
| db1 | 100.5 | 20.3 |
| db2 | 50.2 | 10.1 |
相关问题与解答:
Q1: 如何查询特定数据库的使用情况?
A1: 若要查询特定数据库的使用情况,可以在上述查询中添加一个WHERE子句,指定数据库名称,要查询名为"mydb"的数据库,可以使用以下查询:

SELECT table_schema AS 'Database',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)',
ROUND(SUM(data_free) / 1024 / 1024, 2) AS 'Free Space (MB)'
FROM information_schema.tables
WHERE table_schema = 'mydb'
GROUP BY table_schema;
Q2: 如何查询MySQL服务器的总磁盘空间和已使用空间?
A2: 要查询MySQL服务器的总磁盘空间和已使用空间,可以使用以下命令:
df -h /var/lib/mysql
这将显示MySQL数据目录的磁盘使用情况,包括总空间、已使用空间、剩余空间和使用百分比。