SQL2005 300万条记录 count(*) 和 count(字段名)比较
来源:互联网 发布:万能钥匙mac 编辑:程序博客网 时间:2024/04/30 10:49
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. 没有 索引的情况下
传说中的count(1)性能最差这里没有列出来。
Sql2005中count(*) 性能最高,它会自动的寻找最快的索引。这里给大家一个参考
在数据量过百万时尽量不要使用没有做索引的COUNT()函数来检索数据总数,性能消耗分成大,我将3条语句执行了2遍数据库内存用到300多M。
解决方案:添加索引
3. 为表主键id创建索引后的执行效果如下:
从以上数据可以看出 count(*) 比count(id)扫满一点基本上可以忽略这个就是我上面所讲到的count(*)会自动搜索最开的索引区查询,我们在不知道最快索引时可以使用它是最佳方案,反观count(name)由于name没有加索引所以检索的时间依然很长。
从数据中我们发现第一次执行的时间稍比第二次长点那是因为SQL2005缓存在作怪,如果数据没有任何变动sql会自己到缓存中夺取数据。
总结:
a) 大数据量是使用count函数时需要使用索引来提高性能
b) 在不清楚表中数据最快的索引时什么的时候使用count(*)比较好
c) 在检索的数据没有变更时数据库默认检索缓存中的数据。
- SQL2005 300万条记录 count(*) 和 count(字段名)比较
- Count(*) 和Count(字段名)的区别
- sql中count(*)和count(字段名)区别!
- count(*)、count(1)和count(列名)
- 请问 count(字段名)和count(*)有什么区别
- COUNT(*)与COUNT(某个字段)的区别,及count(null)和count(distinct 某字段)的用法
- 300万条记录 like 和 charindex 函数性能比较 .
- sql中count(*)和count(字段名)区别详解及用途
- count(*) 和 count(1)和count(列名)区别
- count(*) 和 count(1)和count(列名)区别
- count(*) 和 count(1)和count(列名)区别
- select count(*) 和 count(1),count(列名)区别
- Count(*), Count(1) 和Count(字段)的区别
- 数据的检索-count(字段名)与count(*)区别
- sql语句中count(*)与count(1)以及count(字段名)的异同点
- 关于数据库优化1——关于count(1),count(*),和count(列名)的区别,和关于表中字段顺序的问题
- Select count(*)和Count(1)的区别和执行效率比较
- count(*),count(1),count(column)性能比较
- 开始学习C#.Net
- CSDN开博的第一篇文章
- FZU 1629 Above Average
- 批量修改Ms SqlServer 的default(默认值)
- OpenGoo 手册
- SQL2005 300万条记录 count(*) 和 count(字段名)比较
- DirectShow开发快速入门之慨述(-)
- About OpenGoo 关于OpenGoo
- DirectShow开发快速入门之慨述(二)
- Tcode For Listing All The Workflows
- 关系代数与关系演算(下)
- DirectShow开发快速入门之慨述(三)
- Study English
- 用递归实现全排列