一、mysql 表中如果是单主键的话,那这个主键也会被 系统默认建为 索引。
二、mysql 表中如果是复合主键的话,那系统会遵循左对齐原则,即如复合主键 a 和 b字段和c字段..., 默认建的主键索引是abc即主键全有,把所有主键全部建立在一个单独的主键索引中。
可以的.
根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。有关数据库所支持的索引功能的详细信息,请参见数据库文档。
提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。
唯一索引
唯一索引是不允许其中任何两行具有相同索引值的索引。
当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。
主键索引
数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
聚集索引
在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。
如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
PRIMARY KEY 是主键,在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
FOREIGN KEY 是外键,是用于建立和加强两个表数据之间的链接的一列或多列。当创建或修改表时可通过定义 FOREIGN KEY 约束来创建外键。
不需要,主键具备索引的功能了。
当你创建或设置主键的时候,mysql会自动添加一个与主键对应的唯一索引,不需要再做额外的添加。
如果查询的条件中没有用到主键,可以将你的查询字段设置为索引。如果你想在主键上设置索引的话,主键就有索引的功能。
扩展资料:
注意事项
1、主键一定是唯一性的索引,唯一性的所以不一定就是主键。
主键就是能够唯一标识表中某一行的属性或者是属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识一行记录,所以可以确保执行数据更新、删除的时候不会出现错误的。主键还经常和外键构成参照完整性约束,防止出现数据不一致。数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。
2、一个表中可以有多个唯一索引,但是主键只能有一个。
3、主键列不允许为空值,而唯一性索引列允许空值。
4、主键也可以由多个字段组成,组成复合主键,同时主键也是唯一索引。
5、唯一索引表示索引值唯一,可以由一个或者几个字段组成,一个表可以由多个唯一索引。
应该是没有默认索引,建立主键或者索引之后,oracle会在单独的一块区域建立索引的数据,索引的数据和表的数据是分别存放的,不是在一起的,索引的数据就对应表的主键或者其他索引,例如,你的表里有100条数据,并且有主键,那么在索引的区域就会有100条数据和它们对应,并且由于是主键数据,所以每条数据都是唯一的,不会重复,数据检索的时候,先去检索索引区,因为那里的数据比较少,所以速度很快。但如果没有主键,一个表中可以有重复的数据,所以系统也不知道按照什么样的规则自动建索引,就不会有默认的索引,oracle每次查询都会进行全表查询。
原文地址:http://www.qianchusai.com/%E4%B8%BB%E9%94%AE%E9%BB%98%E8%AE%A4%E7%B4%A2%E5%BC%95%E5%90%97.html