关于SQL查询数据库条数的问题

我在做数据库查询的时候,查询获取到了查询的结果集,然后通过结果集的size就可以知道
我总共查询了多少条数据,那这样的话,我是不是可以不需要再使用select count(*) ...
这样再去获取一下我前面查询了多少条数据了。可是我看到很多人都会写上这么一句,我不是很明白到底是为什么,我没有C币,单希望有人能回答我一下。

数据量少是可以直接在结果集里面得到size,但你数据量大时,你难道一次把所有数据都查出来,要是1000万的数据,你不count一下,你怎么知道你有多少

简单点解释就是需要用count(*)的业务场景,大部分是分页查询,需要知道总条数,但是查询的结果集只有单页的条数,比如10条、20条,所以需要用count再去查询一次

楼上说的没错,但是最好不要用count(*),用count(pk) pk是主键。在我们公司,count(*)要被经理骂的

哈哈,select(*)涉及效率问题

我明白你的意思:如果你前期在后台已经查询出来list集合的话,确实可以用list.size获取数据的总数,这样更加快捷。但是如果只是想获取数据的总数的话,就需要用count(id)来查询,此时快些。

select count(*) 获取的数据总数目是为了进行分页操作

你如果没用分页,你先获取了数据的总数,你还又去查询一遍count,那你这个代码就有问题,这里就必须要优化,因为对数据库操作是很耗性能的。但你在分页的时候,你就需要获取数据总条数,你通过查询出来的数据只是分页显示的数据罢了,这时候总数不等于查询出来的总数。