公司项目中要做一个Excel导入会员信息的功能要求每条记录的会员邮箱不能重复,但是数据库中有2W条记录,想到每次导入的时候可能都要去数据库中查,导入的速度会很慢,我就想怎么才能优化。
我的处理方法是:
1. 先做邮箱校验
把Excel里的所有邮箱保存到一张临时表中,临时的字段含有(id,邮箱,邮箱所在的行)先查出Excel数据中
邮箱有没重复sql语句如下:
select count(*) as count from tmpExcel group by email
如果关联的记录小于总记录数,说明Excel里邮箱重了
2. 读取出Excel里的每条记录 再用邮箱与会员表关联。
如果关联出的结果返回的list为空,就说明邮箱没有重复,如果返回的结构不为空,就说明邮箱重复了.
最后可以提示第几行邮箱重了。
程序去校验邮箱的话,需要要得到一个邮箱就去数据库中查询一次有没有,这样效率比较低。上面这种方法只是把校验交给数据库,只需要查2次就搞定了。