如果只想计算行数,则不要检索结果集,这仅意味着无用的开销:
- 您会得到比实际需要更多的东西(无论是选择所有列还是仅选择一个列)
- 您需要通过电线发送它们
- 您将不需要创建任何实例(无论是完整
Person
实体还是只是一个实例String
)。
换句话说,如果您只想计数,而不是在Java方面这样做,那么DBMS已针对此任务进行了优化,并且会做得更好。
这不包括(1)和(2)。
关于(3)和(4),请注意
count(*)与
count(col)通常存在区别:
count(*)
计算 所有 行count(col)
计算具有 非空 值的行col
因此,如果它们
col可以为NULL(
count(*)更快),它们将在性能和查询结果上给出不同的结果,否则性能相同。
我会用(3)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)