Mat*_*ley 13
不,您不需要主键来使表在MySQL中工作.也就是说,主键允许唯一值从另一个表或使用该表的任何代码中引用表中的行.
你确实需要一个主键来使表在MySQL中运行良好.索引(主键是其中之一)允许MySQL搜索表的小型,高度优化的子集来处理关系和搜索.通常,您应该在WHERE子句中使用或用于将两个表链接在一起的任何字段都应编入索引.
实际上,InnoDB 使用自己的行id作为表的PK,以防你没有创建一个,所以它可以用它来编制索引.这对性能有一些负面影响.
在这里看到一个非常好的解释:http://blog.johnjosephbachir.org/2006/10/22/everything-you-need-to-know-about-designing-mysql-innodb-primary-keys/
总结一下,有3条规则:
作为旁注:如果表上没有PK,某些SQL编辑器和工具可能会出现问题.
在此类工具中手动编辑结果集或表数据时,该工具会运行UPDATE命令.如果没有唯一密钥,可以插入几个相同的记录,然后无法仅更新其中一个/一些.在SQL编辑器中,您可以手动编辑其中一条记录,但是当更新命令发送到mysql时 - 它将失败,或者更新所有相同的记录而不是那条记录.
| 归档时间: |
|
| 查看次数: |
16399 次 |
| 最近记录: |