在接触Oracle之前使用过MySQL,不得不说两种数据库差别很大,比如Oracle的表空间。好不容易终于对Oracle数据库的表空间、段、区和块这几个概念有一个稍微清晰的理解了。这几个概念都属于逻辑结构上的,主要是oracle为了对用户屏蔽掉底层操作系统的差异。
块是Oracle数据库处理数据最基本的单位(在数据库创建时就设置好且之后不能修改,所以设置合适的块容量很重要),对于数据库表某一个记录的查询,首先从内存缓冲区(或者硬盘)中读取到该记录所在的块,再返回该数据块上的指定行。
区是一段物理上连续的块组成,这个在我的理解是为了方便管理大量的数据块,对于连续的数据库又进行了一个合并。这里需要说明的是,数据文件是数据库数据真实的物理载体,一个区只能存在于一个数据库文件中。
段就比较重要了,一个段存储了一个数据库对象(比如一张表,一个索引都属于一个数据库对象。对于数据量大的表可能进行分区处理,可能会由多个段组成),常用的段类型包括数据段、索引段、回滚段和临时段。一个段包括一个或多个区,可以存在于一个表空间的多个数据文件中。
表空间由段组成,在逻辑上数据库由表空间组成。表空间这个概念在我看来主要是方便权限管理,有点像Linux中用户组的概念。
Oracle数据库表空间、段、区和块
最新推荐文章于 2021-09-18 09:17:22 发布