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

解决方案 »

  1.   

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

  2.   

    没什么好办法,的确是一个一个加起来。select sum(`DATA_LENGTH`)
    from information_schema.`TABLES`
    where `TABLE_SCHEMA`='mydatabase';
      

  3.   

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

  4.   

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

  5.   

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

  6.   

    很显然,MYSQL中innodb你可以认为只有一个tablespace 虽然这个tablespace 可以由多个文件组成。毕竟ORACLE的存储引擎是要花钱的,而innodb是free的。否则我们还需要 Oracle 做什么呢?