知方可補不足~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多倍!

 

回到目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM