如何更快速的查询1000条数据?
现在的需求是这样的,我有一个模板,里面是JsonArray数据,里面有1000条JSONObject,每个object都有一个客户和产品属性,形如这样
我现在要解析这个JSON,根据每一个object里的客户和产品,到另一个表里来查询它的平均销量和平均单价,
然后返回一个加了平均销量和平均单价的data,就是这样
我现在的做法是循环data,取出每个object,然后取出object的Account和Product,然后到一个查询方法里查询取得数据后,
这样一番下来,整个过程耗时26秒,可以说非常慢,另附上我的查询方法
{"data":[{"account":"01","product":"p1"},...]}我现在要解析这个JSON,根据每一个object里的客户和产品,到另一个表里来查询它的平均销量和平均单价,
然后返回一个加了平均销量和平均单价的data,就是这样
{"data":[{"account":"01","product":"p1","avgNum":111,"avgPrice":222},...]}我现在的做法是循环data,取出每个object,然后取出object的Account和Product,然后到一个查询方法里查询取得数据后,
object.put("avgNum","")...;这样一番下来,整个过程耗时26秒,可以说非常慢,另附上我的查询方法
String sql="SELECT avg(il.UnitPrice),sum(il.Quantity)/12 FROM Invoice i LEFT JOIN InvoiceLineItem il " +
"ON i.InvoiceId=il.InvoiceId " +
"LEFT JOIN Product p ON p.ProductId=il.ProductId "+
"LEFT JOIN Account a ON i.AccountId=a.AccountId "+
"WHERE datediff(m,InvoicedOn,getDate())<=12 " +
"AND p.ProductNumber=? AND a.AccountName=? ";
...
for(int i=0;i<jArray.size();i++){
JSONObject o=jArray.getJSONObject(i);
if(o.isEmpty())
break;
ps.setString(1,o.getString("product"));
ps.setString(2,o.getString("account"));
rs=ps.executeQuery();
Map map=new HashMap<String,String>();
map.put("$$avgPrice",0);
map.put("$$avgNum",0);
while(rs.next()){
map.put("$$avgPrice", rs.getDouble(1));
map.put("$$avgNum", rs.getDouble(2));
}
o.putAll(map);
}不知道各位有什么好的主意,集思广益,
...全文
相关推荐
实用的PHP分页类库,实例化即可使用
通过实例化类并传入关键参数,开发者就能快速创建一个分页对象。这些参数包括:1. **总信息数**:这是所有待分页的数据数量。例如,如果数据库中有1000条记录,那么总信息数就是1000。2.
T-SQL查询技巧语句(收藏版).txt
**应用场景:** - 当需要快速将大量数据从文本文件导入到数据库表时。以上是对给定文件中的各个T-SQL查询技巧进行了详细的解读和应用场景分析,希望能帮助您更好地理解和应用这些技巧。
PHP+MYSQL分页代码
这可以通过查询数据库获取总记录数,然后用总记录数除以每页显示的记录数来计算。例如,如果`SELECT COUNT(*) FROM table`的结果是1000,每页10条,那么总页数就是100。3.
PHP超强分页类
- `$offset`: 数据查询的偏移量。#### 五、扩展性1. **自定义显示模式**:通过继承`page`类,可以实现完全自定义的分页显示模式。
sphinx 中英文分词检索介绍
**高效的查询响应**:Sphinx能够提供毫秒级别的查询响应时间,在面对数百万乃至数千万条记录时,其查询速度仍然保持在0.x秒级别。3.


Web 开发
