SQL查询是否存在的优化|SQL查询是否存在的优化 千万不要使用count了

【SQL查询是否存在的优化|SQL查询是否存在的优化 千万不要使用count了】在实际的应用环境当中 我们通常会查询是否有满足条件记录 在数据库中是否存在 满足查询条件的记录可能有一条或者多条 但是只要有 就表示存在 通常思路是直接 count,count出来的结果如果大于0 则存在 反正则不存在!

select count(*) from table where a = 3 and b = 5

后台拿到结果
int num = findIsExistDao.getNum(params); if (num > 0) { // 存在的代码 } else { // 不存在的代码 }

这样做在SQL层面 如果是超大数据量 那么耗时可想而知 count数都要数很久
但是我们只是想要查看是否有满足条件的记录存在于数据库中 不管他是只有一条 还是多条 只要有 那么就存在 没有 则不存在 所以可以使用以下的方法来判断:
select 1 from table where a = 3 and b = 5 limit 1

惊不惊喜 意不意外 只需要合理使用Limt 取一条数据即可 存在则直接返回1 没有的话 则为空值 毕竟我们的需求是判断库中是否有满足条件的字段 只要有 就满足
这样的话 java代码中就可以稍微的改一下了:
Integer exist = findIsExistDao.getNum(params); if (exist != null) { // 存在的代码 } else { // 不存在的代码 }

细心的小伙伴肯定会看到Java代码里面 上面的使用的是Int来接收 下面这里使用的是Integer来接收 count查询出来没有就是0 所以返回回来的肯定不为空值的 int是不能存放空值的 所以使用他的包装类。
认真分析需求 注重细节 掌握一些小技巧 能大大提高系统的性能问题

    推荐阅读