Mysql 选择计数(*)和选择计数(字段名)之间的差异

Mysql 选择计数(*)和选择计数(字段名)之间的差异,mysql,sql-execution-plan,Mysql,Sql Execution Plan,可能重复: 根据主题,MySQL对上述查询的解释有什么不同吗?或者它们被视为相同?SELECT*…返回所选表中的所有字段选择字段名仅返回指定的字段名 使用第二个选项效率更高,特别是在表中有许多字段并且其中一些字段没有索引的情况下。从这些字段中选择将花费更长的时间,如果您不需要,那么选择所有字段是没有意义的。select(*)表示您希望选择表中所有可用的字段。而select(fieldname)表示您只想选择表中的某些列 例如,您有一个“Users”表,其中包含“username”、“email

可能重复:


根据主题,MySQL对上述查询的解释有什么不同吗?或者它们被视为相同?

SELECT*…
返回所选表中的所有字段<代码>选择字段名仅返回指定的字段名

使用第二个选项效率更高,特别是在表中有许多字段并且其中一些字段没有索引的情况下。从这些字段中选择将花费更长的时间,如果您不需要,那么选择所有字段是没有意义的。

select(*)表示您希望选择表中所有可用的字段。而select(fieldname)表示您只想选择表中的某些列

例如,您有一个“Users”表,其中包含“username”、“email”、“password”列;您可以执行以下操作:

select (*) from Users
这将给你所有3列(用户名,电子邮件,密码);或者你可以:

select username, email from Users

它只会给您两列(用户名、电子邮件)。

函数
COUNT(*)
COUNT(fieldname)
之间的区别在于第二列不计算空值。

您尝试过它们吗?它们通常不会给出相同的结果,那么为什么您认为它们可能被认为是相同的呢?对不起,标题错了>。请阅读此文章(几乎相同的问题:这个问题已经被问了数百万次。它们应该是相同的。最好不要使用
select*
。我面临的最常见的问题是,如果要排除列,会发生什么?请参阅。这不是问到的问题。问题是关于
count(*)
vs
count(fieldName)
现在不是这个问题,是我回答时,他改变了答案title@MartinSmith:这是我问的问题。在OP编辑之前。啊,在那之后看到了问题。对不起!