如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?

小课堂

分享人:谭道霄

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

什么是唯一索引?

要说唯一索引,的先说索引。 打个比方,字典就是一张表,列面的每个字和解释就是其中的列,而索引就是在目录中对应音节和偏旁的页数, 如果没有索引,就好比字典里没有目录,如果汉字只有几十个,字典只有几页,当我们想找哪个字,翻几页很快可以找出来。可实际上字典里的数字远远不止这一些, 一本字典去找这个字效率太低,因而我们需要索引,直接根据索引找到这个字。 唯一索引,顾名思义,添加了唯一索引的列的数据不能重复

2.知识剖析

在实际情况中,像qq号,身份证号,手机号这样的数据,肯定是不能重复的,对于这样的字段,我们就应该添加唯一索引

3.常见问题

如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?

4.解决方案

判断也可以,不过不方便,多连接一次数据库,影响性能。我们可以在插入语句后加ON DUPLICATE KEY UPDATE 添加了唯一索引的字段名 = VALUES(添加了唯一索引的字段名) 然后判断他的返回值

5.编码实战

6.扩展思考

MySQL存储引擎--MyISAM与InnoDB区别

索引方式btree,hash有什么区别

7.参考文献

参考一:http://www.jb51.net/article/93506.htm

参考二:https://www.cnblogs.com/chenshishuo/p/5030029.html

8.更多讨论

欢迎大家交流和讨论

鸣谢

感谢大家观看

BY : 谭道霄