如何查看mysql数据库所占的空间

时间:2021-06-27 03:21:31
如果基于myisam引擎下时,可以看系统数据库文件夹的大小;但如果是innodb时呢,该怎么查呢?有没有什么直接的命令呢?
不会把所有表利用show table status一个个加起来吧?

9 个解决方案

#1


呵,没人知道吗?
是不是嫌分少了?
真的不好意思啊,实在太穷了
哪位好心的话,给偶赞助点,那肯定是热烈欢迎的 :)

#2


直接到存放数据库文件中看不就好了吗?

#3


我要查某个数据库所占的空间,而且是innodb引擎的,不是myisam的。

#4




没什么好办法,的确是一个一个加起来。

select sum(`DATA_LENGTH`)
from information_schema.`TABLES`
where `TABLE_SCHEMA`='mydatabase';


#5


直接看不就可以吗

#6


呵呵,看来mysql以后要应该提供个数据文件的系统视图咯

#7




innodb 根本就没有什么数据库文件夹大小的概念,innodb有些类似于 oracle 的 tablespace概念,所以谈不上什么数据库文件夹大小。

#8


呵,最起码,在oracle里面,如果定义一个或多个表空间只给某个应用的数据用,如果系统有几个应用,那就很容易知道每个应用的数据空间了(根据表空间系统视图),仔细想一下,这样就有点类似一个数据库的性质了。
而这点在mysql里面是区分不了的(在innodb引擎下)。
在mssql里面,就知道有每个库的数据文件系统表,我觉得在oracle里,如果严格区分了应用及其对应的表空间,则也类似mssql这种分库分数据文件的性质了。

#9




很显然,MYSQL中innodb你可以认为只有一个tablespace 虽然这个tablespace 可以由多个文件组成。

毕竟ORACLE的存储引擎是要花钱的,而innodb是free的。否则我们还需要 Oracle 做什么呢?

#1


呵,没人知道吗?
是不是嫌分少了?
真的不好意思啊,实在太穷了
哪位好心的话,给偶赞助点,那肯定是热烈欢迎的 :)

#2


直接到存放数据库文件中看不就好了吗?

#3


我要查某个数据库所占的空间,而且是innodb引擎的,不是myisam的。

#4




没什么好办法,的确是一个一个加起来。

select sum(`DATA_LENGTH`)
from information_schema.`TABLES`
where `TABLE_SCHEMA`='mydatabase';


#5


直接看不就可以吗

#6


呵呵,看来mysql以后要应该提供个数据文件的系统视图咯

#7




innodb 根本就没有什么数据库文件夹大小的概念,innodb有些类似于 oracle 的 tablespace概念,所以谈不上什么数据库文件夹大小。

#8


呵,最起码,在oracle里面,如果定义一个或多个表空间只给某个应用的数据用,如果系统有几个应用,那就很容易知道每个应用的数据空间了(根据表空间系统视图),仔细想一下,这样就有点类似一个数据库的性质了。
而这点在mysql里面是区分不了的(在innodb引擎下)。
在mssql里面,就知道有每个库的数据文件系统表,我觉得在oracle里,如果严格区分了应用及其对应的表空间,则也类似mssql这种分库分数据文件的性质了。

#9




很显然,MYSQL中innodb你可以认为只有一个tablespace 虽然这个tablespace 可以由多个文件组成。

毕竟ORACLE的存储引擎是要花钱的,而innodb是free的。否则我们还需要 Oracle 做什么呢?