mysql count提高方法總結(jié)
mysql想必很多程序猿都是不陌生的。很多人在糾結(jié)count的用法,怎么樣才能查詢效果最好。今天來談?wù)勑【幍囊恍┛捶ǎ瑑H供參考。
1、咱們先準(zhǔn)備建一個(gè)表,并準(zhǔn)備好測試數(shù)據(jù)方便后續(xù)步驟測試
以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并且換數(shù)據(jù)庫
執(zhí)行建表語句如下圖所示
3、然后是準(zhǔn)備測試數(shù)據(jù),簡單查一下是否有數(shù)據(jù),如下圖所示
4、接下來開始做測試
在沒有where條件的情況下
有人覺得count(*)比count(字段)要快,還有人覺得count(字段)比count(*)要快?
那到底那個(gè)快,咱們一試便知,請看下圖
根據(jù)圖中結(jié)果顯示,明顯count(字段)快一些
5、那在有where條件的情況呢?count(*)和count(字段)誰更快?
請看下圖執(zhí)行效果
count(*)快一點(diǎn),可能是數(shù)據(jù)量太少看不出太明顯的效果
6、當(dāng)然可以通過查看執(zhí)行計(jì)劃進(jìn)行分析
在執(zhí)行的sql前面加上desc或者explain即可,如下圖所示
最后總結(jié)一下1.在沒有where條件下,建議count(字段)2.在有where條件的情況下,建議count(*)最后總結(jié)一下1.在沒有where條件下,建議count(字段)2.在有where條件的情況下,建議count(*)
相關(guān)文章
MySQL存儲(chǔ)過程的創(chuàng)建、調(diào)用與管理詳解
這篇文章主要給大家介紹了關(guān)于MySQL存儲(chǔ)過程的創(chuàng)建、調(diào)用與管理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Mysql sql慢查詢監(jiān)控腳本代碼實(shí)例
這篇文章主要介紹了Mysql sql慢查詢監(jiān)控腳本代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11MySQL線程處于Opening tables的問題解決方法
在本篇文章里小編給大家分享了關(guān)于MySQL線程處于Opening tables的問題解決方法,有興趣的朋友們學(xué)習(xí)下。2019-01-01mysql、oracle默認(rèn)事務(wù)隔離級別的說明
這篇文章主要介紹了mysql、oracle默認(rèn)事務(wù)隔離級別的說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01mysql實(shí)現(xiàn)多表關(guān)聯(lián)統(tǒng)計(jì)(子查詢統(tǒng)計(jì))示例
這篇文章主要介紹了mysql實(shí)現(xiàn)多表關(guān)聯(lián)統(tǒng)計(jì)(子查詢統(tǒng)計(jì)),結(jié)合具體案例形式分析了mysql多表關(guān)聯(lián)統(tǒng)計(jì)的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10