mysql 把主键当外键_mysql主键和外键那点事

1、主键:

若某一个属性组(注意是组)能唯一标识一条记录,该属性组就是一个主键。主键不能重复,且只能有一个,也不允许为空。定义主键主要是为了维护关系数据库的完整性。

2、外键:

外键用于与另一张表的关联,是能确定另一张表记录的字段。外键是另一个表的主键,可以重复,可以有多个,也可以是空值。定义外键主要是为了保持数据的一致性。

3、索引:

索引是对表中一个或多个列的值进行排序的结构。

1) 应该创建索引的列的特点:

① 在经常需要搜索的列上创建索引,可以加快搜索的速度;

② 在作为主键的列上创建索引,强制该列的唯一性;

③ 在经常用在连接的列上创建索引,主要是一些外键,可以加快连接的速度;

④ 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,可以利用索引的排序加快查询;

⑤ 在经常使用在WHERE子句中的列上创建索引,加快条件的判断速度。

2) 不应该创建索引的列的特点:

① 在查询中很少使用的列上不应该创建索引,因为这些列很少使用到,因此有索引或无索引,并不能提高查询速度,相反由于增加了索引,反而降低了系统维护速度,增大了空间需求;

② 在只有很少数据值的列上不应该创建索引,很少数据值的列如性别等,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在

你可能感兴趣的:(mysql,把主键当外键)