oracle data block , extent 和segment区别

data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.

Data block、extent和segment是数据库中不同层次的数据存储和管理单位,它们各自具有不同的功能和特点。

  1. Data block(数据块):
    Data block是数据库中最小的逻辑存储单位,也是数据实际存储的最小单位。它的大小是固定的,由操作系统和数据库管理系统(DBMS)共同决定。Data block用于存储实际的数据记录,当数据被插入数据库时,它们首先被存储在Data block中。
  2. Extent(扩展区):
    Extent是由若干个连续的Data blocks组成的区域。它的大小也由DBMS预先确定。一个或多个Data blocks组成一个Extent。当Data block中的空间用尽时,新的数据记录会被添加到新的Extent中。Extent通常用于表示一段连续的存储空间,而不管它包含了多少个Data blocks。
  3. Segment(段):
    Segment是由一个或多个Extents组成的集合。它是数据库对象(如表、索引等)在磁盘上的物理表示。一个数据库对象拥有的所有extents被称为该对象的segment。每一个segment有不同的数据结构,例如每一个表的数据就存储在自己的data segment,每一个索引存储在自己的索引段。一个segment和他所有的extents都是在一个表空间中,并且一个segment可以跨越几个数据文件。

总结来说,Data block是数据库中最小的逻辑存储单位,用于存储实际的数据记录;Extent是由若干个连续的Data blocks组成的区域,表示一段连续的存储空间;而Segment是由一个或多个Extents组成的集合,是数据库对象在磁盘上的物理表示。

你可能感兴趣的:(oracle,数据库)