mysql count提高方法總結
阿新 • • 發佈:2020-01-09
mysql想必很多程式猿都是不陌生的。很多人在糾結count的用法,怎麼樣才能查詢效果最好。今天來談談小編的一些看法,僅供參考。
1、咱們先準備建一個表,並準備好測試資料方便後續步驟測試
以InnoDB引擎表為例
建表語句如下
CREATE TABLE test.test ( a VARCHAR(50) NOT NULL COMMENT 'ddfdf',b VARCHAR(15) NOT NULL COMMENT 'fds',c VARCHAR(20) NOT NULL COMMENT 'asda',d VARCHAR(8) NOT NULL COMMENT 'ads',e longblob NOT NULL COMMENT 'asda',f VARCHAR(2000) COMMENT 'ads',g VARCHAR(8) NOT NULL COMMENT 'assd',h DATE NOT NULL COMMENT 'adsad',z VARCHAR(10) NOT NULL COMMENT 'adsd' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、登陸到mysql並且換資料庫
執行建表語句如下圖所示
3、然後是準備測試資料,簡單查一下是否有資料,如下圖所示
4、接下來開始做測試
在沒有where條件的情況下
有人覺得count(*)比count(欄位)要快,還有人覺得count(欄位)比count(*)要快?
那到底那個快,咱們一試便知,請看下圖
根據圖中結果顯示,明顯count(欄位)快一些
5、那在有where條件的情況呢?count(*)和count(欄位)誰更快?
請看下圖執行效果
count(*)快一點,可能是資料量太少看不出太明顯的效果
6、當然可以通過檢視執行計劃進行分析
在執行的sql前面加上desc或者explain即可,如下圖所示
最後總結一下1.在沒有where條件下,建議count(欄位)2.在有where條件的情況下,建議count(*)最後總結一下1.在沒有where條件下,建議count(欄位)2.在有where條件的情況下,建議count(*)