假设我们有一个MySQL数据库三个表:在MySQL数据透视表中自动递增主键有什么好处吗?
- 帖子
- 类别
- category_post
有帖子和类别间的一种一对多的关系所以一个帖子可能有很多类别。
的category_post表是类别和职位和具有以下的列之间的枢转表:
- ID(主键,自动递增,大整数)
- CATEGORY_ID
- post_id
我们还可以想象,我们在category_post表中有1,000,000行。
我的问题是:
是否有任何性能上的提高具有在category_post表ID柱或者它只是占用额外的空间?
ID或时间戳如果没有主键,InnoDB的将一个用于其内部使用,这意味着你不能避免它(它将是一个8字节的整数)。为了这种目的(路口),我个人总是有主键。我这样做的理由是,我可以正确识别一行,即使在99.9%的情况下,我甚至可能不会手动查询该表以查看其中的内容。但是,由于应用程序发展并且需要更改 - 想象这种情况 - 您突然需要将您的帖子和类别之间的链接用于其他目的。让一个关键字与复合关键字相反是不是更容易? –