如何运作
"What is it? It's it" - Epic, Faith No More
欢迎回到这个关于在 Navicat 16 中使用表空间的系列。第 1 部分介绍了表空间的一些优点,包括可恢复性、轻易添加更多表、自动存储管理以及在隔离缓冲池中数据以提高性能或内存利用率。而第二部分将提供更多信息关于什么是表空间、它们如何运作以及在各种关系数据库产品中的默认表空间类型。本系列的下一部分和最后一部分将重点介绍如何在 Navicat 16 中管理表空间。
表空间作为容器
你可以将表空间视为容器。这些容器可以是目录名、设备名或文件名。一个表空间可以有多个容器。而且,尽管可以在同一物理存储设备上创建多个容器(来自一个或多个表空间),但如果你创建的每个容器都使用不同的存储设备,则可获得最佳性能。下图说明了数据库中表和表空间之间的关系:
表空间和数据库管理器
数据库管理器的作用是平衡容器间的数据负载。因此,所有容器或多或少都用于存储数据。同时,数据库管理器并不总是在第一个容器中开始存储表数据。在使用不同容器之前,数据库管理器写入容器的页数称为“区大小”。
下图显示了表空间的组成部分,包括区大小:
默认表空间
大多数关系数据库都有自己的内置表空间。以下有一些示例:
Oracle
Oracle 有以下的默认表空间:SYSTEM、SYSAUX、USERS、UNDOTBS1 和 TEMP:
- SYSTEM 和SYSAUX 表空间存储系统生成的对象,例如数据字典表。不应在这些表空间中存储任何对象。
- USERS 表空间对即席用户很有帮助。
- UNDOTBS1 保存撤消数据。
- TEMP 是临时表空间,用于存储排序、哈希和大型对象处理操作的中间结果。
MySQL
只有 InnoDB 引擎支持表空间,如下所示:
- 系统表空间
- File-Per-Table 表空间
- Undo 表空间
DB2
创建新数据库时,数据库管理器会为数据库创建一些默认表空间。这些表空间用作用户和临时数据的存储。每个数据库必定有至少三个表空间,如下所示:
- Catalog 表空间
- User 表空间
- Temporary 表空间
预告
有关表空间的第二部分到此结束。本文提供了更多信息关于什么是表空间、它们如何运作以及在各种关系数据库产品中的默认表空间类型。本系列的下一部分和最后一部分将重点介绍如何在 Navicat 16 中管理表空间。