感觉在create table的时候,都没有像oracle那样需要指定表空间的定义。mysql的innodb存储引擎的表创建完毕之后,表空间是虚构的还是实际存在的一个磁盘目录呢?

解决方案 »

  1.   

    如果从ORALCE的角度来讲,MYSQL根本没有表空间 tablespace,innodb 或者可以说只有一个表空间。
      

  2.   

    mysql的innodb存储引擎的表建完后体现为物理文件的形式独享表空间存储方式使用.ibd文件,并且每个表一个ibd文件
    共享表空间存储方式使用.ibdata文件,所有表共同使用一个ibdata文件这个跟oracle的表空间概念不一样,oracle的表空间是一个逻辑概念
    一个数据库包含多个表空间,一般一个表空间包含1-N个数据文件。。你可以把这里的数据文件理解成上面的mysql的那些物理文件。。这样的话 是实际上就是 mysql的多个数据文件 也可以组成类似表空间的概念 但是在mysql的数据库里面没有对这个空间进行过定义 
      

  3.   

    mysql里innodb才有表空间的概念,但是它是全局的,也就是说,所有数据库都用这个表空间。另外,它也不是一个目录的概念,而是一系列物理文件组织而成。