问题:A表有一个字段mm唯一确定一条数据而且也有字段cc有数据,B表也存在mm字段也有cc字段,但是没有数据,目的:希望将B表的cc字段和A表的cc字段同步
策略一:
查询B表的数据,逐一遍历每条数据,根据B表的mm字段连接到查询A表的mm字段,就知道A表的cc字段,然后将cc字段的值给B表的cc字段,然后更新数据库
策略二:
首先查询A表的所有数据,全部放在一个数组(或者链表)中,查询B表的数据,然后根据B表的mm值与数组一一比对,如果是一致就退出循环,然后给B表的cc字段赋值,更新数据库
策略三:
首先查询A表的所有数据,然后将查询的值存放在一个Map对象中map<mm,cc>按照这种格式存放数据,然后查询B表的数据,遍历B表的每个数据,判断map表中是否存在key为mm的数据,如果存在则取出这个值给B表
分析:
策略一:这种方式是最简单也是最麻烦的,因为每次都需要查询数据库,然后在经历两次循环,最后更新数据库,在“海量”数据中这种操作是致命的,可能会导致系统崩溃,不推荐使用这种方式
策略二:这种方式比第一种方式好很多,因为他减少了对数据库的查询,而且将查询的内容放在缓存中,然后循环比较,将查询到的结果同步到数据库B中,但是这里面却依然是含有两层循环,效率依然不高
策略三:这种方法跟第一种方法类似,第一次也是查询A表的所有数据,将查询的结果存放在HashMap中,然后查询B表的数据,逐一遍历每项数据,判断HashMap中是否存在key为mm的值,如果有就将value赋给B表查询的对象,这样就只利用了一层循环,就能够找到结果赋给B表,效率更高