我是数据库的新手,在查询没有字段被指示为主键的表时会遇到时间问题。
例如
+ ----------- + ---------- + ------ + ----- + --------- + ------- +
|领域|输入|空|钥匙|默认|额外|
+ ----------- + ---------- + ------ + ----- + --------- + ------- +
| a_id | char(10)|没有| | | |
|媒体| char(3)|是的| | NULL | |
|标签| char(37)|是的| | NULL | |
如您所见,该字段中没有任何密钥规范。当我做一个像查询 “从表中选择标签,其中a_id =?”,查询速度极慢。这是由缺少主键造成的吗?
感谢,
答案 0 :(得分:2)
不,这是由于缺乏索引造成的。主键必须包含唯一且非空值。如果您在列上添加索引,它可能包含重复项,但您的查询仍然会更快。
如果您希望该字段是唯一的,但您不希望它成为主键(尽管您应该想知道为什么),您甚至可以添加唯一索引。它会强制该值唯一,但它不是主键。
当您希望表具有唯一且唯一的ID和描述时,这可能很方便。通常你会将id作为主键,而描述只是唯一的。