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

“Oracle强烈建议,任何一个应用程序的库表至少需要创建两个表空间,其中之一用于存储表数据,而另一个用于存储表索引数据。因为如果将表数据和索引数据放在一起,表数据的I/O操作和索引的I/O操作将产生影响系统性能的I/O竞争,降低系统的响应效率。将表数据和索引数据存放在不同的表空间中(如一个为APP_DATA,另一个为APP_IDX),并在物理层面将这两个表空间的数据文件放在不同的物理磁盘上,就可以避免这种竞争了。”
上面的这句话是正确的,重点在于这句“并在物理层面将这两个表空间的数据文件放在不同的物理磁盘上”。因为如果是一块磁盘的话,建立两个表空间,因为物理上还是在竞争同一块磁盘,所以没有从根本上解决I/O竞争的问题。另外Oracle提倡这种做法,有两个目的,其一是如果在两个物理磁盘上创建不同的表空间来规避I/O竞争问题,其二更多的是为了管理的方便,这样在导入、导出以及设置备份策略的时候,就可以有选择性的只备份数据部分等。”

一、数据库中创建索bai引du的优点

1、创建唯一性索引,保zhi证数据库表中每一行数dao据的唯一性。

2、加快数据的检索速度,这也是创建索引的最主要的原因。

3、减少磁盘IO(向字典一样可以直接定位)。

4、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

5、加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

二、数据库中创建索引的缺点

1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

2、索引需要占用物理空间,特别是聚集索引,需要较大的空间。

3、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

原文地址:https://www.cnblogs.com/wobushitiegan/p/13566205.html