1)插入数据库以前检查数据是否已经存在数据库;数据库
2)添加惟一索引,插入时使用 INSERT INTO … ON DUPLICATE KEY UPDATE…索引
3)添加惟一索引,插入时使用 INSERT INGNORE INTO…效率
4)添加惟一索引,插入时使用 REPLACE INTO…语法
第一种方案是最简单但也是效率最差的方案,所以不采起。二和四方案的执行结果是同样的,不一样的是,在遇到相同的数据时, INSERT INTO … ON DUPLICATE KEY UPDATE 是直接更新的,而 REPLACE INTO 是先删除旧的数据而后插入新的,在这个过程当中,还须要从新维护索引,因此速度慢。因此在二和四二者间选择了第二种方案。而第三种方案, INSERT INGNORE 会忽略执行INSERT语句出现的错误,不会忽略语法问题,可是忽略主键存在的状况。这样一来,使用 INSERT INGNORE 就更好了。最终,考虑到要在数据库中记录重复数据的条数,所以在程序中采用了第二种方案。程序