我正在使用 newsequentialid 为表中的主键生成 GUID。
根据文档(https://docs.microsoft.com/en-us/sql/t-sql/functions/newsequentialid-transact-sql?view=sql-server-ver15),不保证顺序 GUID按顺序生成。
重新启动 Windows 后,GUID 可以从较低的范围重新开始,但仍然是全局唯一的
基本上,它们是有序的,直到您重新启动机器。
对于自动增量主键,它是聚集索引是有意义的,因为它保证插入的行将在末尾。
对于 GUID 主键,将其作为聚集索引没有意义,因为它是随机的,插入的行不太可能位于末尾。
那么顺序 GUID 主键呢?主键应该是聚集索引,还是应该尝试查找另一列,例如 DateCreated 字段?问题是像 DateCreated 这样的字段不会是唯一字段。如果我没有任何唯一字段,我应该将什么作为聚集索引?