Navicat 博客

Navicat 16 和表空间 - 第 2 部分 2022 年 12 月 6 日,由 Robert Gravelle 撰写

如何运作

"What is it? It's it" - Epic, Faith No More

欢迎回到这个关于在 Navicat 16 中使用表空间的系列。第 1 部分介绍了表空间的一些优点,包括可恢复性、轻易添加更多表、自动存储管理以及在隔离缓冲池中数据以提高性能或内存利用率。而第二部分将提供更多信息关于什么是表空间、它们如何运作以及在各种关系数据库产品中的默认表空间类型。本系列的下一部分和最后一部分将重点介绍如何在 Navicat 16 中管理表空间。

表空间作为容器

你可以将表空间视为容器。这些容器可以是目录名、设备名或文件名。一个表空间可以有多个容器。而且,尽管可以在同一物理存储设备上创建多个容器(来自一个或多个表空间),但如果你创建的每个容器都使用不同的存储设备,则可获得最佳性能。下图说明了数据库中表和表空间之间的关系:

DB2 Tablespace RAM and Disk

表空间和数据库管理器

数据库管理器的作用是平衡容器间的数据负载。因此,所有容器或多或少都用于存储数据。同时,数据库管理器并不总是在第一个容器中开始存储表数据。在使用不同容器之前,数据库管理器写入容器的页数称为“区大小”。

下图显示了表空间的组成部分,包括区大小:

Oracle Table in a Tablespace

默认表空间

大多数关系数据库都有自己的内置表空间。以下有一些示例:

Oracle

Oracle 有以下的默认表空间:SYSTEM、SYSAUX、USERS、UNDOTBS1 和 TEMP:

  • SYSTEM 和SYSAUX 表空间存储系统生成的对象,例如数据字典表。不应在这些表空间中存储任何对象。
  • USERS 表空间对即席用户很有帮助。
  • UNDOTBS1 保存撤消数据。
  • TEMP 是临时表空间,用于存储排序、哈希和大型对象处理操作的中间结果。

MySQL

只有 InnoDB 引擎支持表空间,如下所示:

  • 系统表空间
  • File-Per-Table 表空间
  • Undo 表空间

DB2

创建新数据库时,数据库管理器会为数据库创建一些默认表空间。这些表空间用作用户和临时数据的存储。每个数据库必定有至少三个表空间,如下所示:

  • Catalog 表空间
  • User 表空间
  • Temporary 表空间

预告

有关表空间的第二部分到此结束。本文提供了更多信息关于什么是表空间、它们如何运作以及在各种关系数据库产品中的默认表空间类型。本系列的下一部分和最后一部分将重点介绍如何在 Navicat 16 中管理表空间。

Navicat 文章
频道条目
分享
文章归档