我检查了这篇 SO 帖子:
What's the difference between primary key, unique key, and index in MySQL?
并找到语句:
Also note that columns defined as primary keys or unique keys are automatically indexed in MySQL.
基于此,我有两个问题:
- 我是否可以安全地假设在主键上创建索引本身没有性能优势,因为主键在设计上就是一个索引?
也许更重要的问题是:
- 如果您正在做人们引用的经典示例,基于姓氏和名字执行 SELECT,并且该表有一个您也经常 SELECT 的主键,您将索引创建为 (primary_key, lastName, firstName) 还是只是 (lastName, firstName) 因为主键已经是一个索引?
最佳答案
对于你的第一个问题,你可以安全地假设。
第二个问题:
索引有助于加快搜索速度——它就像书中的索引。它们可以帮助数据库引擎跳转到正确的记录,就像索引可以帮助您跳转到书中的正确页面一样。
您可能自己创建的索引的好处取决于您打算如何搜索数据。
在您的示例中,如果您要在您的应用中搜索名称字段,我会在它们上创建一个索引。
关于mysql - 在主键上创建和索引有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7485578/