`
pleasetojava
  • 浏览: 752771 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

SQL2005 300万条记录 count(*) 和 count(字段名)比较

阅读更多

300万条记录 count(*) count(字段名)比较

环境:sql2005

数据量:300

机器环境

P4 3.0双核 1G内存

1. 执行语句

select count(*) from testing

select count(id) from testing

select count(name) from testing

2. 没有 索引的情况下

传说中的count1)性能最差这里没有列出来。

Sql2005count(*) 性能最高,它会自动的寻找最快的索引。这里给大家一个参考

在数据量过百万时尽量不要使用没有做索引的COUNT()函数来检索数据总数,性能消耗分成大,我将3条语句执行了2遍数据库内存用到300M

解决方案:添加索引

3. 为表主键id创建索引后的执行效果如下:

从以上数据可以看出 count(*) countid)扫满一点基本上可以忽略这个就是我上面所讲到的count(*)会自动搜索最开的索引区查询,我们在不知道最快索引时可以使用它是最佳方案,反观countname)由于name没有加索引所以检索的时间依然很长。

从数据中我们发现第一次执行的时间稍比第二次长点那是因为SQL2005缓存在作怪,如果数据没有任何变动sql会自己到缓存中夺取数据。

总结:

a) 大数据量是使用count函数时需要使用索引来提高性能

b) 在不清楚表中数据最快的索引时什么的时候使用count*)比较好

c) 在检索的数据没有变更时数据库默认检索缓存中的数据。

分享到:
评论

相关推荐

    sql的left join和count应用

    在SQL语言中,`LEFT JOIN` 和 `COUNT` 是两种非常重要的操作,它们在数据库查询中扮演着关键角色。在这个问题中,我们看到一个数据表 `TPL_WORD1`,它包含字段 `Wordid`(主键)、`idFuid`(上一级节点ID)和 `Name`...

    SQL语句参考及记录集对象详解

    ### SQL语句参考及记录集对象详解 #### 一、SQL语句参考 ##### 1. 基础查询 - **全表选择**: `SELECT * FROM 表名 WHERE 条件 ORDER BY 排序字段` - 示例:`SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 字段...

    SQL初/中级教程(pdf)

    - **2.3.1 统计字段值的数目**:COUNT()函数。 - **2.3.2 计算字段的平均值**:AVG()函数。 - **2.3.3 计算字段值的和**:SUM()函数。 - **2.3.4 返回最大值或最小值**:MAX()和MIN()函数。 **2.4 其它常用的SQL...

    处理SQL重复记录查询.

    本篇文章将探讨如何在SQL中查询和删除重复记录,主要关注基于单个字段和多个字段的情况。 首先,我们来看如何**查找表中的重复记录**。一个简单的方法是通过`GROUP BY`和`HAVING`子句来实现。例如,如果你有一个名...

    SQL语句常用汇总

    SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,这里我们将探讨一些常见的SQL语句及其用途。 1. **选择不重复的记录**: 使用`DISTINCT`关键字可以查询数据库表内不重复的记录。例如: ...

    SQL语句查询重复记录大全

    - **复合字段**:当需要基于多个字段(如`peopleId`和`seq`)来查找重复记录时,可以在`GROUP BY`子句中同时包含这些字段。 - **SQL示例**: ```sql SELECT peopleId, seq FROM vitae GROUP BY peopleId, seq ...

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

    在SQL Server中,`COUNT(*)`、`COUNT(1)`和`COUNT([列])`都是常用的聚合函数,用于统计满足特定条件的行数。然而,它们在执行逻辑和效率上存在细微差别,对于数据库性能优化有着重要影响。 首先,`COUNT(*)`是一个...

    SQL基础学习

    - **语法**: `SELECT 字段名 FROM 表名 GROUP BY 字段名 HAVING COUNT(1) > 1` - **示例**: 查询`tbl_order_log`表中`company_id`出现次数大于1的记录。 ```sql SELECT company_id FROM tbl_order_log GROUP BY ...

    sql查询重复记录方法大全

    ### SQL查询重复记录方法大全 在数据库管理与维护过程中,查询和处理重复记录是一项非常重要的工作。本文将详细介绍几种常见的SQL查询重复记录的方法,并提供具体的示例代码。 #### 方法一:查询具有重复值的记录...

    oracle sql 语法大全

    * 筛选前 N 条记录:sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" * 筛选指定字段的记录(使用 in 操作符):sql="select * from 数据表 where 字段名 in (\'值 1\',\'值 2\',\'值 3\')...

    查询及删除重复记录的SQL语句.

    Oracle 数据库提供了一系列 SQL 语句来帮助我们查询和删除这些重复的记录。以下是一些常用的 SQL 技巧,用于处理重复记录的问题。 1. **查询重复记录**: 当我们想找出基于单一字段(如 `Id`)的重复记录时,可以...

    SQL语法大全

    - **COUNT(*|字段名)**: 统计行数或某列不为空的行数。 - **MAX(字段名)**: 获取字段的最大值。 - **MIN(字段名)**: 获取字段的最小值。 - **SUM(字段名)**: 计算字段的总和。 这些函数的使用方法如下: ```sql ...

    mysql数据库精华.doc

    - `SELECT TOP 10 * FROM 数据表 WHERE 字段名 = 字段值 ORDER BY 字段名 [DESC]`:这是SQL Server的语法,但在MySQL中,你可以使用`LIMIT 10`来获取前10条匹配的记录。 - `SELECT * FROM 数据表 WHERE 字段名 IN...

    sql重复记录操纵汇总

    SQL 重复记录处理是数据库管理中的常见问题,尤其是在数据清洗和数据整合时。以下是对标题和描述中涉及的知识点的详细说明: **一、查询重复记录** 1. **多字段重复查询**: 使用自连接可以查询多字段同时重复的...

    SQL必知必会

    - **COUNT(*|字段名)**:统计数据行数或对某字段有值的数据行数。 - **MAX(字段名)**:获取指定字段的最大值。 - **MIN(字段名)**:获取指定字段的最小值。 - **SUM(字段名)**:计算指定字段的总和。 这些函数可以...

    300万条mysql测试数据

    当我们谈论“300万条mysql测试数据”时,这意味着我们拥有一份包含三百万记录的数据集,专门用于测试和验证MySQL在处理大规模数据时的性能、查询效率以及系统的稳定性和可靠性。 首先,测试数据的重要性在于它能够...

    java如何获得数据库表中各字段的字段名

    ### Java如何获得数据库表中各字段的字段名 在Java编程中,经常需要与数据库进行交互,例如查询、更新或删除等操作。其中一项常见需求是获取数据库表中的所有字段名称。这通常在动态生成报表或者需要根据数据库结构...

    SQL语句大全

    `COUNT(字段名)` 返回指定字段非空值的行数。 - **最大值**: `MAX(字段名)` 返回指定字段的最大值。 - **最小值**: `MIN(字段名)` 返回指定字段的最小值。 - **求和**: `SUM(字段名)` 返回指定字段的总和。 通过...

    sql 语句 功能全

    - **解释**:向表中插入一条或多条记录,或者将一个表的所有记录插入到另一个表中。 ##### 数据记录统计函数 - **AVG(字段名)**:计算字段的平均值。 - **COUNT(*; 字段名)**:统计行数或特定字段非空值的数量。 - ...

    sql中null值对count的影响

    ### SQL中的NULL值对COUNT函数的影响 在SQL中,`NULL`值的处理是一个非常重要的概念,尤其是在使用聚合函数如`COUNT`时。本篇文章将详细介绍`NULL`值如何影响`COUNT`函数的行为,并通过具体的示例来帮助理解这一...

Global site tag (gtag.js) - Google Analytics