`
nvry
  • 浏览: 319613 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

select count(1)或select count(*)

 
阅读更多

1、select 1 与 select *的区别
    selelct 常量 from ... 对应所有行,返回的永远只有一个值,即常量 。所以正常只会用来判断是否有还是没有(比如exists子句)。而select * from ... 是返回所有行的所有列。
    性能上的差异,关键看你的from和where子句。比如说如果你的where条件中可以通过索引,那显然 select 1 from ... 的性能比 select * from ... 好。
2、select count(1)与select count(*)的区别
   跟表结构有关系:
   如果表中没有主键,那么count(1)比count(*)快
   如果有主键,那么count(主键,联合主键)比count(*)快
   如果表中只有一个字段,count(*)最快
3、select sum(1)的使用
   select count(*)返回所有满足条件的记录数,此时同select sum(1)
   但是sum()可以传任意数字,负数、浮点数都可以,返回的值是传入值n*满足条件记录数m

分享到:
评论

相关推荐

    sql server中Select count(*)和Count(1)的区别和执行方式

    在SQL Server中,`SELECT COUNT(*)` 和 `COUNT(1)` 是两种常见的聚合函数,用于统计表中的行数。虽然在大多数情况下它们的结果相同,但它们的执行方式和背后的原理存在细微差别,这也是数据库优化中常常讨论的话题。...

    select count()和select count(1)的区别和执行方式讲解

    在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。 往常我经常会看到一些所谓的优化建议不使用Count...

    mysql技巧之select count的区别分析

    1.测试环境 OS:LinuxDB:mysql-5.5.18table:innodb存储引擎 表定义如下: 2. 测试场景与分析【统计表group_message的... 通过上述测试结果可以看到,select count(*)和select count(1)都使用了group_id这个最短

    Select count(*)、Count(1)和Count(列)的区别及执行方式

    在SQL Server中,`COUNT(*)` 实际上并不需要全表扫描,因为它会查找表中非NULL的行,这是通过利用表中的非NULL列或索引来实现的。如果表中存在全为NULL的行,这些行将不会被计入总数。 接着,`COUNT(1)` 和 `COUNT...

    分析MySQL中优化distinct的技巧

    上述场景中,用户遇到了一个问题:对一个10G以上的单表`user_access_xx_xx`执行`SELECT COUNT(DISTINCT nick)`以统计唯一用户访问(UV)时,即使有`nick`字段的索引,执行计划仍然显示全索引扫描,导致服务器性能受...

    mysql SELECT FOUND_ROWS()与COUNT()用法区别1

    在MySQL数据库中,`SELECT FOUND_ROWS()` 和 `COUNT(*)` 都是用来获取数据表中记录数量的方法,但它们之间存在一些关键的区别。了解这些差异对于优化查询性能和满足特定需求至关重要。 首先,`COUNT(*)` 是一个标准...

    MySQL中count(*)、count(1)和count(col)的区别汇总

    本篇文章将详细解释COUNT(*)、COUNT(1)以及COUNT(column)这三种不同用法的区别。 1. COUNT(*) COUNT(*)是最常见的用法,它会计算表中所有非NULL的行。这意味着,即使列中有NULL值,COUNT(*)也会将其计入总数。在...

    ASP中获得Select Count语句返回值的方法

    1. 构造SQL查询语句:首先,我们需要构造一个SQL查询语句,并在其中使用Select Count(*)表达式。为了能够在ASP代码中获取返回值,我们需要给查询结果设置一个别名,例如Total。别名是通过AS关键字来指定的,因此完整...

    为什么 select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?

    在MySQL数据库中,`select count(*) from t` 这样的SQL语句用于计算表`t`中的行数。然而,根据不同的存储引擎,如InnoDB和MyISAM,这个操作的性能差异显著。这个问题是理解数据库优化的一个关键点,特别是在处理大...

    SELECT IN SQL

    SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 10. **ORDER BY子句** 使用`ORDER BY`对结果进行排序,可以指定升序`ASC`或降序`DESC`: ``` SELECT * FROM table_name...

    sql中null值对count的影响

    SELECT COUNT(*), COUNT(pid), COUNT(ISNULL(pid, '')) FROM tbl_user WHERE pid IS NOT NULL; ``` 结果是`(2, 2, 2)`,因为只有两行的`pid`不是`NULL`,且这两行中的`pid`被成功计数。 2. **只考虑`NULL`值的...

    Oracle中的select大全

    SELECT column1, column2, ... FROM table_name; ``` - **示例**:获取所有表的信息。 ```sql SELECT table_name FROM user_tables; ``` #### 2. 查询统计信息 - **语法**: ```sql SELECT COUNT(*), SUM...

    SQL常用查询语句.pdf

    基本语法为:`COUNT(*)` 或 `COUNT(列名)` * `COUNT(*)`:统计所有记录的数量 * `COUNT(列名)`:统计指定列的数量 * `COUNT(DISTINCT 列名)`:统计指定列的唯一数量 示例: * `SELECT COUNT(*) FROM student;`:...

    MySQL中distinct和count(*)的使用方法比较

    1. 计算不重复记录数量:`SELECT COUNT(DISTINCT id) FROM tablename;` 这个查询将返回 `tablename` 表中唯一 `id` 值的数量。 2. 返回不重复的字段值:`SELECT DISTINCT id FROM tablename;` 此查询将返回 `...

    count(1)、count(*)与count(列名)的执行区别详解

    1. count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!  从执行计划来看,count(1)和count(*)的效果是一样的。 但是在表做过分析之后,count(1)会比count(*)的...

    ora-004select

    1. **SELECT**:关键字,标志着这是一个查询操作。 2. **列名**:你需要从表中选择的字段名,可以是单个字段,也可以是多个字段,用逗号分隔。 3. **FROM**:关键字,后面跟着你要查询的表名。 4. **WHERE**(可选)...

    sql的left join和count应用

    (SELECT t1.WORD_ID, COUNT(1) AS tot FROM TPL t1 JOIN TPL t2 ON t1.WORD_ID = t2.FU_ID WHERE t1.FU_ID=-1 GROUP BY t1.WORD_ID) a2 ON a1.WORD_ID = a2.WORD_ID; ``` 这个查询首先创建了两个子查询...

Global site tag (gtag.js) - Google Analytics