亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于select count的問題

關于select count的問題

慕森卡 2018-12-03 14:17:34
SELECT count(0)  FROM tableSELECT count(1)  FROM tableSELECT count(colname)  FROM tableSELECT count(*)  FROM table這四個語句有什么樣的區別啊?在網上查了很久還是迷茫.自己也動手測試了一下.還在暈著呢.
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

返回結果都一樣,但底層操作是不一樣的。 對于前三種 count ,數據庫只會使用其對應的列上的索引來計算,如果其對應列上沒有索引,count的執行效率會非常低。比如SELECT COUNT(COLNAME);

如果 COLNAME 這個列上沒有建索引,那就會導致數據庫按物理順序掃描數據文件,效率會很低。

而且 COLNAME 上建聚集索引和非聚集索引的效率也是不一樣的。

對于 count(*) 不同數據庫優化不一樣,SQLSERVER 2005 是首先找聚集索引,沒有的話找任意一個非聚集索引,如果還沒有,那就按物理堆積來查找。所以偷懶的方法是用 count(*)  效率會比較高。


查看完整回答
反對 回復 2018-12-07
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

都一樣。都是返回表內所有行數?! ?/p>

查看完整回答
反對 回復 2018-12-07
  • 2 回答
  • 0 關注
  • 779 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號