首页 / 知识
在SQL中,count(*)和count(‘x’)有什么区别?
2023-04-15 03:30:00

In SQL, what’s the difference between count(*) and count('x')?本问题已经有最佳答案,请猛点这里访问。
我有以下代码:
如果我将COUNT(*)替换为COUNT('x'),结果或性能会有所不同吗? (此问题与上一个问题有关)
说
此外,
需要注意的一件事-如果您正在使用COUNT(col)(不要!)并且col被标记为NULL,那么它实际上将必须计算表中的出现次数(通过索引扫描,直方图等)它们是否存在,否则进行全表扫描)。 底线:如果您想要的是表中的行数,请使用COUNT(*) 这个问题与另一个提到的问题略有不同。在所引用的问题中,有人问到使用count(*)和count(SomeColumnName)有什么区别,SQLMenace的答案很明确。 为了解决这个问题,结果基本上没有区别。 count(*)和count('x')都说count(1)将返回相同的数字。区别在于,当使用" *"时,就像在SELECT中一样,将返回所有列,然后进行计数。当使用常数(例如'x'或1)时,会传回具有一栏的资料列,然后再进行计数。当" *"返回许多列时,将看到性能差异。 更新:上面关于性能的陈述可能不像其他答案中所讨论的那样正确,但是在使用EXISTS和NOT EXISTS时确实适用于子选择查询 主要的性能差异是可以通过检查表上的主键来满足COUNT(*)。 也就是说,在下面的简单情况下,查询将立即返回,而无需检查任何行。
我不确定SQL Server中的查询优化器是否会这样做,但是在上面的示例中,如果您要分组的列具有索引,则服务器应该能够满足查询而根本不击中实际表。 需要说明的是:此答案专门针对SQL Server。我不知道其他DBMS产品如何处理此问题。
MySQL:根据MySQL网站,对于使用MyISAM的单表查询, http://dev.mysql.com/doc/refman/5.0/zh/group-by-functions.html#function_count 我猜一个带有计数的hading子句可能会改变事情。 |
最新内容
相关内容
linux克隆代码命令?
linux克隆代码命令?,系统,代码,文件,命令,目录,源文件,文件夹,路径,目标,表示,Linux文件拷贝命令?linux系统使用cp命令即可将一个文件夹里面的linux命令行调试代码?
linux命令行调试代码?,环境,代码,信息,平台,程序,编辑,版本,步骤,体系结构,处理器,linux怎么调试pythonLinux中如何安装Python?安装pycharmPychlinux编译源代码命令?
linux编译源代码命令?,工具,代码,百度,最新,环境,项目,系统,电脑,密码,内核,linux怎样编译git源码包1、linux的源码是在/usr/src这个目录下,此linux命令提交代码?
linux命令提交代码?,工作,系统,地址,代码,命令,数据,信息,目录,标准,发行,求助:LINUX常用SHELL命令你可以通过打开Linux的terminal(终端)来执行Slinux代码同步命令?
linux代码同步命令?,时间,服务,系统,地址,代码,网络,通信,图片,风险,管理,linux系统时钟同步命令1、因此使用ntpdate同步可能会引发风险,因此该linux命令错误代码?
linux命令错误代码?,系统,密码,电脑,网络,手机,网址,软件,代码,设备,老板,Linux管理常见错误1、检查权限:使用文件浏览器和终端,检查文件的访问linux同步代码命令?
linux同步代码命令?,时间,系统,通信,网络,标准,图片,服务,代码,线程,单位,Linux下线程同步的几种方法1、线程同步的方式包括:互斥锁、读写锁、linux拉取代码命令?
linux拉取代码命令?,代码,工作,地址,命令,数据,系统,单位,生产,软件,目录,linux下wsdl2java获取源码命令首先,连接相应linux主机,进入到linux命linux代码对齐命令?
linux代码对齐命令?,系统,地址,标准,信息,对比,名称,代码,命令,文件,工作,linux命令大全之diff命令详解diff[参数][文件1或目录1][文件2或目录linux命令运行代码?
linux命令运行代码?,代码,单位,系统,环境,连续,保险,工具,命令,文件,音乐,Linux中,运行一个C语言程序如何运行1、编译。由.c文件生成.o文件,写搭建linux命令行代码?
搭建linux命令行代码?,系统,软件,工作,名字,服务,代码,地址,环境,管理,密码,linux如何搭建git1、Git已经在你的系统中了,你会做一些事情来客户linux查看命令代码?
linux查看命令代码?,系统,信息,代码,名称,命令,设备,数字,第一,软件,管理,在Linux命令终端中查看和编辑曾执行过的命令1、Linux可以使用以下几