我有一个中等大小的数据库(约 100 个表),它使用 GUID 作为所有表中的主键。
在我们最活跃的表之一中,GUID 导致存储需求不必要的增加。该表本质上是一个主键 (GUID)、4 个外键 (GUID) 和两个datetime
字段。
我想将主键和所有外键更改为整数,从而将表降低到当前大小的三分之一左右。系统中还没有大量数据,因此转换现有数据应该不是一个大问题。
我的主要问题是,最好的方法是什么?
将所有引用的表(以及我数据库中的大多数表)转换为使用整数键。
向每个引用表添加额外的自动增量整数标识以用作外键,并维护这些表中的 GUID 以供外部引用(通过 API 等使用)。
小智 3
你的计划对我来说基本上没问题。不过,我会谨慎行事 - 在表中添加一个新的 int 列,用唯一值填充它(ROW_NUMBER() 函数对于这种事情很方便),然后将其更改为主键,并在考虑之前检查一切是否正常删除 GUID 列。
您也许应该创建一组存档表,其中包含每个表的 GUID 和 PK,以便您在需要时可以参考。
归档时间: |
|
查看次数: |
2267 次 |
最近记录: |