請問資料庫的select count的問題 |
答題得分者是:P.D.
|
17kobe
初階會員 發表:86 回覆:73 積分:31 註冊:2007-07-30 發送簡訊給我 |
資料庫select count有分好幾種
SELECT COUNT(*) SELECT COUNT(1) SELECT COUNT(主索引鍵) SELECT COUNT(欄位) 請問這幾個要怎麼分析什麼時候才適合自己來用,有人說select count(*)耗cpu多,select count(欄位)則耗cpu少 而select count(*) 及 select count(1)都較select count(欄位) 要來得快 不知道大大有沒有這些的分析 還有是我在SELECT COUNT(1)很大筆的數量,好像有發生問題,少了一位數資料,現在還在查詢原因中。 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
count(*) --> 會傳回所有資料列的筆數
count(欄位) -->會傳回指定欄位中不為空值null的所有資料列筆數 至於 count(1) 沒聽說過, 我用 IB , 可能其他SQL有吧! COUNT(索引), 其實索引也是一個欄位, 因此也就是 COUNT 基本上就兩種 COUNT(*) 或 COUNT(欄位) 但選擇COUNT(欄位), 如果該欄位有建立INDEX的話, 運算的速度會比欄位沒有索引的要快 其實COUNT 有一種很好的用法, 如果今天你想知道某一個欄位有幾筆是空值或非空值時, 要如何做 SELECT COUNT(AFIELD), COUNT(*) 假設回傳 ----------------- ------------------ 15 20 那代表什麼意思, AFIELD 被回算有15筆非空值, 總記錄有20筆, 那AFIELD有幾筆是空值, 不用我再算式了吧! |
cluise789
一般會員 發表:1 回覆:5 積分:1 註冊:2007-08-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |