Select Count語句剖析

數據庫查詢相信很多人都不陌生,所有經常有人調侃程序員就是CRUD專員,這所謂的CRUD指的就是數據庫的增刪改查。

在數據庫的增刪改查操作中,使用最頻繁的就是查詢操作。而在所有查詢操作中,統計數量操作更是經常被用到。

關於數據庫中行數統計,無論是MySQL還是Oracle,都有一個函數可以使用,那就是COUNT。

但是,就是這個常用的COUNT函數,卻暗藏着很多玄機,尤其是在面試的時候,一不小心就會被虐。不信的話請嘗試回答下以下問題:

1、COUNT有幾種用法?

2、COUNT(字段名)和COUNT(*)的查詢結果有什麼不同?

3、COUNT(1)和COUNT(*)之間有什麼不同?

4、COUNT(1)和COUNT(*)之間的效率哪個更高?

5、爲什麼《阿里巴巴Java開發手冊》建議使用COUNT(*)

6、MySQL的MyISAM引擎對COUNT(*)做了哪些優化?

7、MySQL的InnoDB引擎對COUNT(*)做了哪些優化?

8、上面提到的MySQL對COUNT(*)做的優化,有一個關鍵的前提是什麼?

9、SELECT COUNT(*) 的時候,加不加where條件有差別嗎?

10、COUNT(*)、COUNT(1)和COUNT(字段名)的執行過程是怎樣的?

 

以上10道題,如果您可以全部準確無誤的回答的話,那說明你真的很瞭解COUNT函數了,如果有哪些知識點是不瞭解的,那麼本文正好可以幫你答疑解惑。

1、認識COUNT

關於COUNT函數,在MySQL官網中有詳細介紹:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章