我查看了这篇Stack Overflow的帖子:
并找到以下语句:
请注意,MySQL中定义为主键或唯一键的列会自动创建索引。
基于此,我有两个问题:
- 我可以安全地假设在主键本身上创建索引没有性能优势,因为主键本质上是一个索引吗?
也许更重要的问题:
- 如果您正在执行人们引用的经典示例,按lastName和firstName进行SELECT,并且该表还具有您经常使用的主键,那么是否应将索引创建为(primary_key,lastName,firstName)或仅(lastName,firstName)因为主键已经是索引?
SELECT A FROM B WHERE C
这样简单的查询语句,那么你有两个选择:对整张表进行扫描或是利用索引查找。如果你想选择后者,那么你应该只使用已有索引中的列作为WHERE
语句的条件。 - Andrey