为什么要将表和索引建立在不同的表空间?

Posted freakkkkk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么要将表和索引建立在不同的表空间?相关的知识,希望对你有一定的参考价值。

上一个随笔引出的新问题,找到了一个参考:

“Oracle强烈建议,任何一个应用程序的库表至少需要创建两个表空间,其中之一用于存储表数据,而另一个用于存储表索引数据。因为如果将表数据和索引数据放在一起,表数据的I/O操作和索引的I/O操作将产生影响系统性能的I/O竞争,降低系统的响应效率。将表数据和索引数据存放在不同的表空间中(如一个为APP_DATA,另一个为APP_IDX),并在物理层面将这两个表空间的数据文件放在不同的物理磁盘上,就可以避免这种竞争了。”

  上面的这句话是正确的,重点在于这句“并在物理层面将这两个表空间的数据文件放在不同的物理磁盘上”。因为如果是一块磁盘的话,建立两个表空间,因为物理上还是在竞争同一块磁盘,所以没有从根本上解决I/O竞争的问题。另外Oracle提倡这种做法,有两个目的,其一是如果在两个物理磁盘上创建不同的表空间来规避I/O竞争问题,其二更多的是为了管理的方便,这样在导入、导出以及设置备份策略的时候,就可以有选择性的只备份数据部分等。”



以上是关于为什么要将表和索引建立在不同的表空间?的主要内容,如果未能解决你的问题,请参考以下文章

mysql 分区

mysql 分区

oracle表空间设计基本原则

mysql分区及实例演示

mysql分区及实例演示

将用户当前表空间中的表和索引迁移到另一个表空间