gpt4 book ai didi

mysql - 如果我们通过代码管理唯一性和自动增量,为什么要使用主键?

转载 作者:行者123 更新时间:2023-11-29 18:47:12 24 4
gpt4 key购买 nike

我知道我们使用主键来唯一地标识每一行,但是如果我们从代码中管理所有行呢?主键到底有什么用?

最佳答案

  • 没有索引,用户从数据库中删除父行会强制 SQL Server 查询引擎扫描子表在外键中引用以确保数据完整性妥协了。考虑一个包含数十万个子表行;索引可以大大加快查找速度。
  • 外键 CASCADE 选项的性能(ON DELETECASCADE,ON UPDATE CASCADE)可以通过使用得到显着改进索引的索引,因为引擎执行查询来搜索行应自动删除或更新。
  • 父表和子表之间 JOIN 的性能外键列大大改进。这是一个自然的假设相关的表可以一起查询以生成结果集。考虑前面的 ORDERHEADER/LINEITEM 示例。它对于不需要执行的查询来说是很自然的仅限 LINE ITEM 的元素,也包含 ORDERHEADER 的元素(例如订单日期,输入订单的 CSR)
  • 开发和维护数据模型时,请检查您的模型的位置可以从外键关系中受益
  • 确保外键列已建立索引以防止表扫描在数据删除、级联操作和查询 JOIN 期间。

关于mysql - 如果我们通过代码管理唯一性和自动增量,为什么要使用主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44538076/

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