查询mysql中没有主键的表

时间:2011-11-30 23:41:48

标签: mysql database primary-key

我是数据库的新手,在查询没有字段被指示为主键的表时会遇到时间问题。

例如

+ ----------- + ---------- + ------ + ----- + --------- + ------- +

|领域|输入|空|钥匙|默认|额外|

+ ----------- + ---------- + ------ + ----- + --------- + ------- +

| a_id | char(10)|没有| | | |

|媒体| char(3)|是的| | NULL | |

|标签| char(37)|是的| | NULL | |


如您所见,该字段中没有任何密钥规范。当我做一个像查询 “从表中选择标签,其中a_id =?”,查询速度极慢。这是由缺少主键造成的吗?

感谢,

1 个答案:

答案 0 :(得分:2)

不,这是由于缺乏索引造成的。主键必须包含唯一且非空值。如果您在列上添加索引,它可能包含重复项,但您的查询仍然会更快。

如果您希望该字段是唯一的,但您不希望它成为主键(尽管您应该想知道为什么),您甚至可以添加唯一索引。它会强制该值唯一,但它不是主键。

当您希望表具有唯一且唯一的ID和描述时,这可能很方便。通常你会将id作为主键,而描述只是唯一的。