唯一索引和普通索引的区别是什么?

java分享会

分享人:杨舜

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

什么是索引?

索引用来快速地寻找那些具有特定值的记录,如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。所以对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分。

2.知识剖析

MySQL提供多种索引类型供选择:普通索引 、唯一性索引、主键、全文索引、单列索引与多列索引

普通索引:

普通索引的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column=)或排序条件(ORDERBY column)中的数据列创建索引。

唯一性索引:

如果确定某个数据列只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引,MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

主键:

必须为主键字段创建一个索引,这个MySQL索引就是所谓的“主索引”。主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是PRIMARY而不是UNIQUE。

3.常见问题

怎么创建索引?

4.解决方案

在mysql命令行中使用命令创建

ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`)

PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

或者直接在Navicat中添加索引

5.编码实战

6.扩展思考

什么时候使用唯一索引

在确定该字段不能有重复的情况下,使用唯一索引。比如身份证号码字段,手机号码字段

7.参考文献

百度

8.更多讨论

鸣谢

感谢观看,如有出错,恳请指正

BY : 杨舜