Mysql 如果我们管理唯一性,为什么要使用主键&;从代码自动递增?
我知道我们使用主键来唯一地标识每一行,但如果我们从代码管理所有行,那么?主键的具体用途是什么?通过定义主键,您可以更快地通过键检索数据。如果您在id列上使用identity,则不需要在同一列上使用主键。Mysql 如果我们管理唯一性,为什么要使用主键&;从代码自动递增?,mysql,sql,sql-server,database,rdbms,Mysql,Sql,Sql Server,Database,Rdbms,我知道我们使用主键来唯一地标识每一行,但如果我们从代码管理所有行,那么?主键的具体用途是什么?通过定义主键,您可以更快地通过键检索数据。如果您在id列上使用identity,则不需要在同一列上使用主键。 在没有索引的情况下,用户从数据库中删除父行 将强制SQL Server查询引擎扫描子表 在外键中引用,以确保不影响数据完整性 妥协的。考虑一个数十万的儿童表 排;索引可以大大加快查找速度 外键级联选项的性能(删除时) CASCADE,ON-UPDATE CASCADE)可以通过使用显著改进 由于
- 在没有索引的情况下,用户从数据库中删除父行 将强制SQL Server查询引擎扫描子表 在外键中引用,以确保不影响数据完整性 妥协的。考虑一个数十万的儿童表 排;索引可以大大加快查找速度
- 外键级联选项的性能(删除时) CASCADE,ON-UPDATE CASCADE)可以通过使用显著改进 由于引擎执行查询以搜索行,因此索引的 应自动删除或更新的
- 上的父表和子表之间的联接的性能 外键列得到了极大的改进。这是一个自然的假设 相关的表可以一起查询以生成 结果集。考虑较早的OrthHealth/LITETION示例。信息技术 执行不需要 不仅是行项目的元素,还包括ORDERHEADER的元素(例如。 订单日期,输入订单的CSR)
- 在开发和维护数据模型时,请检查模型的位置 可以从外键关系中获益
- 确保外键列已编制索引,以防止表扫描 在数据删除、级联操作和查询联接期间