当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!从执行计划来看,count(1)和count(*)的效果是一样的。
但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少。
这个也与表的记录数多少有关!如果1w以外的数据量,做过表分析之后,反而count(1)的用时比count(*)多了。另外,当数据量达到10w多的时候,使用count(1)要比使用count(*)的用时稍微少点!如果你的数据表没有主键,那么count(1)比count(*)快
如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快
如果你的表只有一个字段的话那count(*)就是最快的啦
count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。
如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。
因为count(*),自动会优化指定到那一个字段。所以没必要去count(1),用count(*),sql会帮你完成优化的
因此:count(1)和count(*)基本没有差别!sql调优,主要是考虑降低:consistent gets和physical reads的数量。
如果null参与聚集运算,则除count(*)之外其它聚集函数都忽略null.
如:
ID DD
1 e
2 null
select count(*) from table --结果是2
select count(DD) from table ---结果是1
也可以Tom的网站讨论的结果:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1156151916789
结论是不相上下。
个人认为count(*)好些。
链接:
http://www.huomo.cn/database/article-18dbf.html
分享到:
相关推荐
`COUNT(常量)`,例如`COUNT(1)`,虽然在某些数据库系统中与`COUNT(*)`的行为相似,但并不完全相同。它通常被视为一个非空表达式,因此与`COUNT(*)`一样,会计算所有行。然而,不是所有的数据库系统都会对`COUNT(常量...
### 达梦与Oracle的主要差异 #### 一、字段名处理差异 在处理字段名时,达梦数据库和Oracle有着显著的区别。对于字段名的大小写敏感性问题,两者采用了不同的处理方式: - **达梦数据库**:支持字段名的大小写...
### 解决Oracle分页查询中排序与效率问题 在Oracle数据库中进行分页查询时,经常会出现性能瓶颈,尤其是在处理大数据量的情况下。本篇文章将详细探讨如何优化Oracle分页查询中的排序与效率问题。 #### 一、理解...
- **Oracle** & **SQL Server**: `COUNT` - 作用:统计行数或非NULL值的数量。 3. **最大值** - **Oracle** & **SQL Server**: `MAX` - 作用:返回列中的最大值。 4. **最小值** - **Oracle** & **SQL Server...
【大型数据库技术-实验二 Oracle SQL PLUS环境与查询】 实验主要涵盖了Oracle数据库系统中的SQL*PLUS工具的使用以及SQL查询语言的基本操作。SQL*PLUS是Oracle数据库管理系统的命令行界面,用于执行SQL语句和PL/SQL...
- **Oracle** 和 **SQL Server** 支持 `MAX`, `MIN`, `SUM`, `AVG`, `COUNT` 等聚合函数,用于对一组数据进行汇总统计。 ### 五、字符串函数 - **Oracle** 和 **SQL Server** 提供了丰富的字符串函数,如 `ASCII`, ...
- **COUNT(1)**:在InnoDB引擎中,与COUNT(*)性能相似,都用于统计行数,包括NULL值。但在某些场景下,如统计非空特定列,COUNT(列)会更快,因为它仅计算特定列的非NULL值。 3. **索引** - **聚集索引(Clustered...
BLOG_Oracle_lhr_【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名).pdf
- **MySQL**与**Oracle**: - 两者都支持使用`LIKE`进行模糊查询。 - 示例:`SELECT * FROM table WHERE field LIKE '%search_term%';` - 不过,在某些情况下,Oracle可能会使用`INSTR`函数来替代`LIKE`,以提高...
ssion count" from v$session where status='ACTIVE ******** total sessions count *************** sion count" from v$session; ******** top 30 big objects name ********** a35 a15 -----部分截断sql---
1. **Oracle难点与重点分析**: - **并发控制**:Oracle通过事务和锁机制保证数据的一致性。了解行级锁、表级锁以及多版本并发控制(MVCC)的工作原理,对于优化并发性能至关重要。 - **索引策略**:选择正确的...
### Oracle 查询效率调优实例详解 在处理大量数据时,Oracle 数据库的查询性能往往成为系统瓶颈之一。本文将结合具体实例,介绍如何通过优化 SQL 语句来提高查询效率。 #### 一、Leading 提示与 Use_NL 提示 在...
1. **INDEX SKIP SCAN**: 当创建了一个组合索引,但是查询只使用了索引的非第一列时,Oracle可能会选择不使用索引,因为它无法直接通过索引来定位数据。INDEX SKIP SCAN是一种优化策略,允许数据库跳过索引的第一个...
通过学习《Oracle性能优化绝版好书:高级OWI与ORACLE性能调整》,读者将掌握如何运用OWI进行性能监控,以及如何结合其他Oracle工具和方法,系统性地解决性能问题,提升数据库的整体运行效率。这本书对于Oracle DBA和...
掌握Oracle错误帮助文档和函数大全,不仅能够提升日常数据库管理的效率,还能在面对复杂问题时提供强大的支持。在实践中,结合实际案例学习和使用这些工具,将有助于深化对Oracle数据库的理解,提高解决问题的能力。...
通过一系列章节的学习,读者不仅可以掌握Oracle的基本操作,还能深入了解其架构和高级功能,从而更好地利用Oracle解决实际问题。 #### 第一章 数据库基础 - **数据库概述**:解释什么是数据库,数据库的作用及其...
- **有效连接条件与笛卡儿积**:有效的连接条件可以帮助避免不必要的笛卡儿积,从而提高查询效率。 - **连接的类型** - **内连接(INNER JOIN)**:返回两个表中满足连接条件的所有行。 - **左外连接(LEFT OUTER ...
在Oracle的开发技术中,涵盖了多个关键知识点,这些知识点对于理解Oracle的编程规范、提高开发效率以及解决复杂数据问题至关重要。 1. **Oracle的编程规范**:遵循良好的编程习惯可以确保代码的可读性和维护性。这...
### 鸿鹄论坛_oracle四大宝典之1:Oracle Sql基础 #### 一、SQL的起源和分类 ##### 1.1 SQL的起源 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作数据库的标准计算机语言。它最早由IBM的...