记录一次响应时间过长的处理方案
分析原因
首先贴上时间耗费较长的部分伪代码
// 遍历数据
for (){
// 获取id
Integer id = ....;
// 根据id判断数据在数据库中是否存在
if (true) {
// 存在则更新数据
} else {
// 不存在则新增一条数据
}
}
这是一段非常简单的代码,遍历表中数据,数据存在则更新,数据不存在在插入新的数据。而原因就出在连接数据库这一过程,该段代码会与数据库进行2倍以数据量的连接,当循环的数据偏多时,响应时间就会过长。
添加缓存
在判断数据是否存在这一部分每循环一次都需要访问一次数据库确定数据是否存在,我们可以将每次访问的结果以id为key值存储起来,判断时直接取出缓存中数据,从而降低响应时间。
修改后伪代码如下