count(1) 、count(id)、count(*) 如何选择
时间: 2023-02-12 09:24:00 浏览: 50
count(1)和count(*)的用法相同,都是统计表中的行数。count(id)是统计id列中非空值的个数。如果想要统计表中的行数,可以使用count(1)或count(*);如果想要统计某一列中非空值的个数,可以使用count(column_name)。
相关问题
count(id)和count (*)
count(id)和count(*)之间的区别在于统计的对象不同。
count(id)是统计指定列(id列)非空的行数,只计算非空值的数量。
count(*)是统计所有行的数量,包括空值和非空值。
在实际使用中,count(id)会排除掉id列为空的行,而count(*)会将所有行都计算在内。因此,count(id)的结果可能会小于count(*)的结果。
在性能方面,count(id)只需要统计指定列的非空值,相对来说会比count(*)更快一些。但是差别很小,因为count(*)会自动优化指定到那一个字段,所以在大多数情况下,使用count(*)和count(id)的效率差异可以忽略不计。
在《阿里巴巴Java开发手册》中强制要求不使用COUNT(列名)或COUNT(常量)来替代COUNT(*)的原因是为了避免出现误解和潜在的问题。使用COUNT(*)可以更清晰地表达统计所有行的意图,并且在某些数据库中,COUNT(*)的性能可能更好。
#### 引用[.reference_title]
- *1* [SQL-count(*)和count(id)有啥区别](https://blog.csdn.net/weixin_45910779/article/details/113805370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [count(1)、count(*)和count(指定字段)之间的区别](https://blog.csdn.net/qq_21103471/article/details/124706159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [MySQL的count(*) ,count(1),count(id)的区别](https://blog.csdn.net/weixin_50966947/article/details/126769434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
count(*)和count(1)和count(id)区别
count(*)、count(1)和count(id)之间的区别在于它们统计的对象不同。count(*)表示统计所有的行数,而count(1)表示统计所有的行数,count(id)表示统计id列的非空值的行数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [sql语句中count(*),count(1),count(id)区别详解](https://blog.csdn.net/wscrf/article/details/78250189)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [MySQL的count(*) ,count(1),count(id)的区别](https://blog.csdn.net/weixin_50966947/article/details/126769434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]