1

我有一个关于域的一般问题。我认识到,当我创建一个表并且我不使用域时,将创建一个默认域,例如 RDB$1、RDB$2、RDB$3、aso。以下是我的问题: - 默认创建的域有什么影响?- 这些会扩大我的数据库大小吗?- 这些对性能有影响吗?- 我应该为我使用的每种数据类型创建一个域,然后使用该域吗?

谢谢

4

3 回答 3

3

影响和尺寸都非常小。

最好使用域,因为当您更新一个时:您会为所有使用它的字段更新它。

于 2009-08-27T20:56:35.303 回答
1

在需要从域中获取信息的管理工具中可以看到对性能的唯一影响。如果你有一个数据库,比如说,500 个表,平均有 20 列,那就是 10000 个域。如果您使用自定义域,您可能有 50 个左右。因此,管理工具将更快地加载表和列定义。

你真正应该关心的是逻辑。拥有域可确保您不会与某些列的数据类型不匹配,这可能会导致外键出现问题。此外,全局更改某些域数据类型更容易:例如,前段时间我决定更改我的一个数据库中 Customer 表中 CustomerID 的数据类型。它在大约 50 个外键中被引用。使用域,就像转储 SQL 脚本和更改域的定义一样简单。如果没有域,我将不得不在一个巨大的 SQL 脚本上进行搜索和替换——这当然容易出错。

于 2009-10-17T07:51:08.990 回答
1

默认创建的域与用户创建的域具有相同的影响。

在任何情况下,创建域的特定操作(用户或默认创建)所占用的空间仅与定义域本身的系统表中存储的数据有关;对存储在数据库中的数据所占用的空间没有影响。

在包含真实数据的数据库中,元数据占用的空间与数据占用的空间相比可以忽略不计,因此域的影响很小。

出于可读性和维护目的,建议使用用户域。

于 2009-09-19T14:47:53.057 回答