COUNT(1)、COUNT(*)、COUNT(`列名`)的区别

  先说结论:无脑使用COUNT(*)即可,因为COUNT(*)是SQL92定义的标准统计行数的语法。
 
 
 
  MySQL官方文档明确说明,在使用InnoDB存储引擎的前提下,COUNT(1)和COUNT(*)是完全一样的且没有性能差异。
 
  传送门:https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_count
 
  关键句:InnoDB handles SELECT COUNT(*) and SELECT COUNT(1) operations in the same way. There is no performance difference.
 
 
 
  COUNT(*)和COUNT(`列名`)的区别在于,COUNT(`列名`)不包括列值为NULL的行。

Copyright © 2024 码农人生. All Rights Reserved