刚工作愚蠢的代码

发布于:2023-10-25 ⋅ 阅读:(74) ⋅ 点赞:(0)

惨案背景:前端反映,分页查询接口速度过慢,让我想办法优化。

我立刻想到了去做视图,提高查询速度,于是呼呼呼一大堆,做了视图,重写了查询,测试之后发现速度提升了1s,聊胜于无。于是我开始做测试,想要测试那一步占用时间最长,结果是发现了这一行代码。

        List<LogMonitor> logMonitors= logMonitorService.findAll(con);
        int count =logMonitors.size();

我为了获取分页查询结果的总数,用了全部查询(findAll)去获取,结果导致相当于在分页查询中查询了一次全部的表。

最后的处理是在Dao层写了一个获取总数的方法,写完之后,测试一下,500行,240ms。

铭刻耻辱柱!!!

    public int getCount(DetachedCriteria dc){
        Session session = sessionFactory.getCurrentSession();
        Criteria c = dc.getExecutableCriteria(session);
        c.setProjection(rowCount());  //查询结果返回的行数
        return c;
    }


网站公告

今日签到

点亮在社区的每一天
去签到