gpt4 book ai didi

sql - 在 Guid 列上使用唯一索引有什么意义

转载 作者:行者123 更新时间:2023-12-04 20:12:10 25 4
gpt4 key购买 nike

因为,无论如何为什么要使用唯一索引,guid 值将始终是唯一的。当您使用唯一索引时,它会减慢插入速度,这不是真的吗?

最佳答案

UNIQUE 约束的使用:

  • 强化独特性。 尽管生成的 GUID 很可能是唯一的,但您可以轻松地在多行中插入相同的 GUID。当然,您可能会误操作,但这甚至可能是您设计的一部分,例如多对多表中的复合键约束。
    CREATE TABLE BookAuthors (
    guid INT PRIMARY KEY,
    BookGuid INT NOT NULL,
    AuthorGuid INT NOT NULL,
    FOREIGN KEY (BookGuid) REFERENCES Books(BookGuid),
    FOREIGN KEY (AuthorGuid) REFERENCES Authors(AuthorGuid),
    UNIQUE KEY (BookGuid, AuthorGuid)
    );
  • 成为外键的目标。 您可能习惯于引用父表的 PRIMARY KEY 的 FOREIGN KEY。您知道外键也可以引用唯一键吗?
    CREATE TABLE Acknowledgements (
    guid INT PRIMARY KEY,
    BookGuid INT NOT NULL,
    AuthorGuid INT NOT NULL,
    Acknowledged VARCHAR(100) NOT NULL,
    -- this works because of the UNIQUE constraint in BookAuthors:
    FOREIGN KEY (BookGuid, AuthorGuid)
    REFERENCES BookAuthors (BookGuid, AuthorGuid)
    );
  • 表现。 正如其他人指出的那样,UNIQUE 是一个约束,但在大多数品牌的数据库中,当您定义 UNIQUE、PRIMARY KEY 或 FOREIGN KEY 约束时,索引是隐式的。插入到任何索引表时存在一些开销是对的,但索引的性能优势是净胜出,通常是多次。
  • 尽管为 NULL,但唯一性。 虽然主键对于标识表中的行至关重要,但它们不允许 NULL。您可以使用 UNIQUE 约束来强制可空列的唯一性。
  • 关于sql - 在 Guid 列上使用唯一索引有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345135/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com