一个关于简单SQL语句的问题,但是我有时对此感到疑惑。以为我会看看是否有人知道答案。
在使用简单的SQL语句对表中的记录进行计数时,该语句的窃听最少:
1) SELECT COUNT(single_primary_field) FROM table, i.e. SELECT COUNT(user_ID) FROM users;
2) SELECT COUNT(*) FROM table
我最初认为第一个可能最快。但是也许没有特定的领域可以使第二个更快?
无论哪种方式,速度差异都很小。
谢谢
答案 0 :(得分:1)
COUNT(column)
仅计算选定的列,而忽略空值。
COUNT(*)
对行进行计数,而不关心列中的值。
使用COUNT(*)
是对行进行计数的更好方法。
答案 1 :(得分:0)
Count(*)是根据mysql进行计数的最有效方法: Count
答案 2 :(得分:0)
请通读https://mariadb.com/kb/en/library/explain/,以了解查询所使用的索引类型,通常可以暗示其性能。
我认为Count(*)将是最快的,因为maria确实会存储一个连续的计数。