java处理亿级数据问题

需求:从表a查出数据存入表b里

目前表a有4亿左右数据量,关键字段是手机号和c字段,手机号有重复,然后把从表a里查出的每一条数跟表b里的手机号字段进行比较,如果手机号重复则更新c字段,如果没有就新增到表b里

目前做法: 写了一个while循环,每一次循环从表a里取3000数据,在把3000条数据进行循环,拿到每一条数据查表b进行依次比较新增或修改

测了一下这种方式处理数据效率太低了,for循环每循环一次就需要查库和改库,有没有一种更好的方式来解决这个问题?请指教

回答

上es,这么大的数据量查询全部走es,然后根据主键进行更新操作