sql 排重方法
无伤 2014-10-16 11:13:50 现在我遇到这样一个问题:数据库有一张表(User)里面有几个字段是唯一索引比方说有两个字段(name,id)是唯一索引。现在我的程序有批量导入的功能比方说一次导入1000条记录,我需要导入数据库前在程序里判断这些数据是否在数据库里已经存在。目前实现的方法有两个:
一、对每一条数据做精确查询。如:select 1 from User where name='xx' and id=123; 这种做法效率比较低,而且需要方法数据库n次;
二、将这两个索引字段拼成in里的元素使用一条sql查询。如:select 1 from User where name in ('x1','x2','x3',.......) and id in (1,2,3,.......) .这种方法可能查出来的结果集过大。
请问哪位大侠有比较好的解决办法? 提示:该表数据量比较大上千万级。