3

我检查了这个 SO 帖子:

MySQL中的主键、唯一键和索引有什么区别?

并找到了声明:

另请注意,定义为主键或唯一键的列会在 MySQL 中自动建立索引。

基于此,我有两个问题:

  • 我是否可以安全地假设在主键本身上创建索引没有性能优势,因为根据设计,主键是索引?

也许更重要的问题是:

  • 如果您正在做人们引用的经典示例,基于 lastName 和 firstName 执行 SELECT,并且该表也有一个您经常选择的主键,您会将索引创建为 (primary_key, lastName, firstName) 还是仅创建 (lastName , firstName) 因为主键已经是索引?
4

2 回答 2

1

然而,对于您的第一个问题,您可以放心地假设这一点。

对于第二个问题:

索引有助于加快搜索速度——就像书中的索引。它们可以帮助数据库引擎跳转到正确的记录,就像索引可以帮助您跳转到书中的正确页面一样。

您可能自己创建的索引的好处取决于您打算如何搜索数据。

在您的示例中,如果您要在应用程序中搜索名称字段,我会在名称字段上创建一个索引。

于 2011-09-20T13:06:01.630 回答
0

如果有一个索引 onPRIMARY_KEY和一个索引 on LastName, FirstName,这并不意味着索引 on PRIMARY_KEY, LastName, FirstName

但是,在这种情况下,主键字段通常是多余的,因为您需要使用不同的索引。

于 2011-09-20T13:05:42.620 回答