首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在候选密钥中选择主键的最佳方法是什么?

问在候选密钥中选择主键的最佳方法是什么?
EN

Stack Overflow用户
提问于 2022-05-25 17:12:29
回答 1查看 99关注 0票数 -2

我关心在候选键中选择哪个候选键作为主键。

假设使用mysql数据库(InnoDB)。假设我们有一个唯一的值,学生号,和唯一值ID号(例如社会保险号码)。

学生ID号和ID号都可以是候选密钥。在这种情况下,即使考虑自动增量新列,我也应该设置什么值作为主键?

我的猜测是,innoDB(mysql)使用主键创建集群索引。那么,在需要查找特定范围的列中使用该列是否正确,因为它具有能够找到范围的优点吗?

谢谢你!!

EN

回答 1

Stack Overflow用户

发布于 2022-05-25 17:23:34

首先,您应该知道美国社会保险号码并不是唯一的。

正确的是,InnoDB总是将主键视为群集索引。你不必猜测,手册中记录了这一点:https://dev.mysql.com/doc/refman/8.0/en/innodb-index-types.html

您不一定需要使用主键来找到特定的范围。您也可以使用辅助索引。您甚至可以使用非索引列,但是它会导致表扫描,除非表非常小,否则性能会很差。

在搜索聚集索引和二级索引之间进行选择时,对搜索聚集索引进行更多的优化。

指南中有一些异常,我们不知道您的查询是否属于这些异常之一,因为您还没有描述任何查询。

这提出了一个更广泛的观点:如果不了解需要优化的特定查询,就无法选择最佳的优化策略。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72381795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档