知方可補不足~SQL中的count命令的一些優(yōu)化措施(百萬以上數(shù)據(jù)明顯)
SQL中對于求表記錄總數(shù)的有count這個聚合命令,這個命令給我們感覺就是快,比一般的查詢要快,但是,當(dāng)你的數(shù)據(jù)表記錄比較多時,如百萬條,千萬條時,對于count來說,就不是那么快了,我們需要掌握一些技巧,來優(yōu)化這個count。
有人說:
select count(1) from table
select count(primarykey) from table
比較快,一定不要用
select count(*) from table
可我要說的是,count(*)更快一些,為什么呢,count(*)是什么意思?事實上,它真正的含義是找一個占用空間最小的索引字段,然后對它進行記數(shù),不要一看到*就認(rèn)為“大”,在count命令中,它指的是“任意一個“。
對于一個大表來說,如果你的字段有bit類型,如性別字段,表示真假關(guān)系的字段,我們需要為它加上索引,加上之后,我們的count速度就提交幾十倍,真的,呵呵
首先為我們的bit類型字段加索引IsSync添加聚集索引
如果數(shù)據(jù)表太大,我們需要在命令行中去運行
之后,再去運行count命令,呵呵
SET STATISTICS IO ON --查看IO開銷 SET STATISTICS PROFILE ON --查看分析、編譯和執(zhí)行查詢所需的時間 SET STATISTICS TIME ON --查看語句運行的時間 SELECT COUNT(*) FROM dbo.C_User_Info
結(jié)果比沒有建立索引時快了10多倍!
浙公網(wǎng)安備 33010602011771號