知方可补不足~SQL中的count命令的一些优化措施(百万以上数据明显)

SQL中对于求表记录总数的有count这个聚合命令,这个命令给我们感觉就是快,比一般的查询要快,但是,当你的数据表记录比较多时,如百万条,千万条时,对于count来说,就不是那么快了,我们需要掌握一些技巧,来优化这个count。

有人说:

select count(1) from table

select count(primarykey) from table

比较快,一定不要用

select count(*) from table

可我要说的是,count(*)更快一些,为什么呢,count(*)是什么意思?事实上,它真正的含义是找一个占用空间最小的索引字段,然后对它进行记数,不要一看到*就认为“大”,在count命令中,它指的是“任意一个“。

对于一个大表来说,如果你的字段有bit类型,如性别字段,表示真假关系的字段,我们需要为它加上索引,加上之后,我们的count速度就提交几十倍,真的,呵呵 

首先为我们的bit类型字段加索引IsSync添加聚集索引

如果数据表太大,我们需要在命令行中去运行

之后,再去运行count命令,呵呵

SET STATISTICS IO ON  --查看IO开销
SET STATISTICS PROFILE ON --查看分析、编译和执行查询所需的时间
SET STATISTICS TIME ON  --查看语句运行的时间
SELECT COUNT(*) FROM dbo.C_User_Info 

结果比没有建立索引时快了10多倍!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值