SQL查找是否"存在",别再count了,很耗费时间的

根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写 SQL 的时候,还要 SELECT count(*) 呢?

无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的 count

优化前:

sql执行

select COUNT(1) from csp_cust t WHERE t.contact_sheet_no =? ;

java代码

        geshu = jxShowInfoDao.getCustno(cust);
        System.out.println("sheetNo1:"+ geshu);    
        if(geshu > 0)
        {
            System.out.println("有重复:"+ geshu);    
        }
        else
        {
            jxShowInfoDao.setCust(cust);
            
        }

优化后:

sql执行SQL 不再使用 count,而是改用 LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了

 

 

select 1 from csp_cust t WHERE t.contact_sheet_no =? limit 1;

 

java代码:业务代码中直接判断是否非空即可

            Integer cdmaTroubleInf = jxShowInfoService.getCDMATroubleInf(srvCode);
            Integer broadTroubleInf = jxShowInfoService.getBroadTroubleInf(srvCode);
            if(cdmaTroubleInf!=null || broadTroubleInf!=null){
                map.put("flag", "0");
            }else{
                map.put("flag", "1");
            }

 

SQL查找是否"存在",别再count了,很耗费时间的

上一篇:Mysql数据类型


下一篇:使用MySQL实现分页查询