将 500 万条记录的结果集处理为 JSON 对象以避免性能问题


while(resultSet.next()){    
for (int c = 1; c <= metaData.getColumnCount(); c++){    
String columnName = metaData.getColumnName(c);    
Object value = resultSet.getString(columnName);     
record.put(columnName, value);    
}    
}

上面 while 循环运行 500 万次乘以列数。 有没有最好的方法来实现一种有效的方法来处理它..?

您可能应该使用Pagination来执行此操作,而不是在响应中发送一大块json块。它不仅会增加内存/CPU 使用率,而且如果网络流量,它会产生很多。加上前端在处理和渲染方面的性能问题,响应如此之大。

pagination中,您可能会返回第一条n记录以及元数据(即记录总数、总页数、当前页面等(。如果您使用的是Spring,请查看此分页示例。

在数据库层,你可以根据数据库类型来实现它(例如,对于MySQL,你可以使用LIMIT(。这个SO答案解释了如何在MySQL中进行分页。

相关内容

  • 没有找到相关文章

最新更新