gpt4 book ai didi

mysql - Mysql中一个表有一个唯一列,是否必须有一个ID列?

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:49 26 4
gpt4 key购买 nike

我有两个表AB。两个表都有超过 100 万条记录。

A 有两列 - idphoto_idid 是主键,photo_id 是唯一的。

A需要在B中被引用。

3 个问题:

  1. 我可以忽略Aid 并使用photo_id 链接两个表吗?
  2. 与在 B 中使用唯一列相比,使用主列有什么好处吗?
  3. 拥有外键会有什么不同?我可能不会使用外键,因为我使用的服务器不支持它。当有超过 100 万条记录时,这会产生显着差异吗?

最佳答案

跳过 id 列。如果您的 photo_id 已经是唯一的,您应该改用它。主键(在 MySQL InnoDB 中)自动聚集,这意味着数据存储在索引中,如果您使用主键作为引用,可以非常有效地检索整行。

回答您的问题:

  1. 是的。并删除 id 列。这是一个人工 key ,与使用 photo_id 相比没有任何好处
  2. 是的。主键索引是聚集的,可以非常有效地查询精确查询和范围查询。 (即 select * from photos where 2 < id AND id < 10 )
  3. 外键对您的数据库表施加约束,并确保表中的数据处于一致状态。如果没有外键,您必须有一些应用程序级逻辑来确保一致性。

关于mysql - Mysql中一个表有一个唯一列,是否必须有一个ID列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930708/

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