count(*)、count(1)、count(column)有什么区别?
时间: 2024-06-04 18:06:35 浏览: 70
count(1)、count(*)与count(列名)的执行区别详解
这三个函数都是用于计算表中行数的函数,但是有一些区别。
- `count(*)`会返回表中所有行数,包括NULL值,因为它会计算所有行,不管行中的值是什么。
- `count(1)`和`count(*)`的作用是一样的,它们都会返回表中所有行数,包括NULL值,它们的区别在于`count(1)`会将每一行都视为一个1来计算,而`count(*)`会计算所有行。
- `count(column)`会返回指定列中非NULL值的行数,它忽略列中的NULL值。因此,如果要计算指定列中的行数,应该使用`count(column)`。
需要注意的是,当表中的行数非常大时,使用`count(*)`会比使用`count(column)` 或者 `count(1)` 慢,因为前者需要计算所有行,而后者只需要计算非NULL行。
阅读全文