通常,你应该有一些PRIMARY KEY.
当您不想要时,有一些非常特殊的情况,最明显的是堆组织(非集群)日志表,它们没有任何索引来加速插入.
请注意,在表中MySQL,InnoDB表不能进行堆组织,因此这只涉及MyISAM表.
另请注意,a PRIMARY KEY可以是复合的,就像在many-to-many关系表中一样.id在这样的表中不会有列,但是您将拥有由id相关表的列组成的复合主键.
有关详细信息,请参阅此问题:
根据我的经验,几乎从来没有。(对于“速度很重要,我只是插入并且此时并不真正关心检索”的应用程序风格,也许。)
虽然您可能永远不会使用 ID 字段,但拥有一个愉快的 AUTO_INCRMENTing 几乎总是明智的,因为有一天您可能需要一个。(当然,您可以简单地执行“ALTER..”来添加一个,但这不是重点。)