Firebird中的域名

时间:2009-08-27 18:45:01

标签: database firebird

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

THX

3 个答案:

答案 0 :(得分:3)

影响和尺寸非常小。

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

答案 1 :(得分:1)

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

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

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

建议使用用户域以便于阅读和维护。

答案 2 :(得分:1)

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

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