我正在尝试优化SQL查询,我想就组合GROUP BY和ORDER BY的最佳/最快方式提供一些专家意见
基本上我试图从产品表中选择最低价格,并按商家名称对它们进行分组。
这是我原来的疑问:
molten <- melt(mydata, id.vars = "rn", measure.vars = patterns("_\\d$"))
ORDER BY无法正常工作,我得到的是产品组合而不是价格最低的产品。
在阅读其他讨论之后,我想出了一个改进的查询:
select p.*, m.*, d.* from datafeeds as d, products as p left outer join meta as m on p.mykey = m.mykey where p.datafeed_id = d.id and (match(p.name) against ('+asics +"gel" -women*' in boolean mode)) and p.datafeed_id = '35' and p.is_custom = 0 group by d.merchant_name order by d.merchant_name limit 50
查询获得正确的结果,但速度很慢。 有没有更好的方法呢?
提前致谢
答案 0 :(得分:0)
你可以试试这个
public void addStepFlow(List<StepFlow> stepFlows) {
Session session = this.sessionFactory.openSession();
try {
Transaction tx = session.beginTransaction();
for (StepFlow stepFlow : stepFlows) {
session.save(stepFlow);
session.flush();
session.clear();
}
tx.commit();
session.close();
} catch (JDBCException e) {
SQLException cause = (SQLException) e.getCause();
System.out.println(cause.getMessage());
}
}