逻辑组件的分区方式,直接决定了 Oracle 数据库里数据怎么存、怎么查、怎么扩展。像表空间、段、数据区这些,听着挺抽象,其实就像你装修房子时怎么分房间、每个房间怎么放东西一样。理解清楚这套结构,后面搞优化、查问题都方便得多。
表空间的作用蛮关键,数据都落在它上面。一个系统分多个表空间,比如业务表一个,日志表一个,各管各的,出问题好排查,备份还轻松。
是段(Segment),你可以理解为一个具体的“对象存储块”,像一张表就是一个段,索引也是段。段又被划分成数据区(Extents),按需扩容,不会一下子吃掉磁盘空间,挺聪明的设计。
再往下是数据块(Data Block),它才是真正读写数据的最小单位。你写入一行记录,其实就是写进一个块里去。默认大小 8K,也可以调,但调之前记得看业务特性。
还有模式对象(Schema Objects),比如表、视图、索引、存储过程这些,都是在逻辑结构上存在的“数据库成员”,搞明白谁属于哪个空间、用了哪些段,有助于你优化表设计。
如果你想细看表空间怎么建,可以看看这篇文章;搞清备份结构,推荐这篇;还有这篇等待事件的也挺有意思,定位慢 SQL 时实用。
建议你建库时逻辑结构就先规划好,别一开始贪方便全堆一个空间里,后面扩容和迁移麻烦。嗯,如果你打算做数据分区或多租户部署,这些基础结构概念必须得搞清楚。