1. 查询MySQL数据库空间
1.1 空间相关概念介绍
在查询MySQL数据库空间之前,我们需要先了解以下几个概念:
- 数据库大小:数据库占用的磁盘空间。
- 表大小:表占用的磁盘空间。
- 索引大小:索引占用的磁盘空间。
1.2 查询数据库和表空间大小
使用以下SQL语句可以查询数据库和表的大小:
```
SELECT table_schema "数据库名",
ROUND(SUM(data_length+index_length)/1024/1024,2) "数据库大小(单位:MB)",
ROUND(SUM(data_length)/1024/1024,2) "数据大小(单位:MB)",
ROUND(SUM(index_length)/1024/1024,2) "索引大小(单位:MB)",
COUNT(*) "表数量"
FROM information_schema.tables
GROUP BY table_schema
ORDER BY SUM(data_length+index_length) DESC;
```
其中,`information_schema.tables`是MySQL系统库中包含所有表的信息的一个视图,可以从中获取需要的信息。上述SQL语句会返回每个数据库的大小、数据大小、索引大小,以及数据库中包含的表的数量。
1.3 查询表和索引空间大小
使用以下SQL语句可以查询指定表和索引的大小:
```
SELECT table_name "表名",
ROUND(data_length/1024/1024,2) "数据大小(单位:MB)",
ROUND(index_length/1024/1024,2) "索引大小(单位:MB)"
FROM information_schema.tables
WHERE table_schema = '数据库名'
AND table_name = '表名';
```
上述SQL语句会返回指定表的数据大小和索引大小。
2. 查询Oracle数据库空间
2.1 空间相关概念介绍
在查询Oracle数据库空间之前,我们需要先了解以下几个概念:
- 数据文件:Oracle数据库中用于存储数据和索引的物理文件。
- 表空间:Oracle数据库中逻辑数据存储的单位。一个表空间包含一个或多个数据文件。
- 数据库大小:所有数据文件和控制文件的大小之和。
2.2 查询数据文件空间大小
使用以下SQL语句可以查询数据文件的大小:
```
SELECT file_name "文件名",
tablespace_name "表空间名",
ROUND(bytes/1024/1024, 2) "大小(单位:MB)"
FROM dba_data_files
ORDER BY tablespace_name, file_name;
```
上述SQL语句会返回每个数据文件的大小以及所属的表空间。
2.3 查询表空间空间大小
使用以下SQL语句可以查询表空间的大小:
```
SELECT tablespace_name "表空间名",
ROUND(SUM(bytes)/1024/1024, 2) "大小(单位:MB)"
FROM dba_data_files
GROUP BY tablespace_name
ORDER BY tablespace_name;
```
上述SQL语句会返回每个表空间的大小。
2.4 查询数据库空间大小
使用以下SQL语句可以查询整个Oracle数据库的大小:
```
SELECT ROUND(SUM(bytes)/1024/1024/1024, 2) "大小(单位:GB)"
FROM dba_segments;
```
上述SQL语句会返回整个Oracle数据库的大小。需要注意的是,此SQL语句返回的是所有表的大小之和,包括空的和未使用的表空间。