MYSQL按+组排序......最快的方式?

时间:2017-03-21 08:20:41

标签: mysql group-by sql-order-by inner-join

我正在尝试优化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

查询获得正确的结果,但速度很慢。 有没有更好的方法呢?

提前致谢

1 个答案:

答案 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());
        }
    }