11111111111
知識共享平臺
知識共享平臺

討教大學平臺

  • 首頁
  • 免費課
  • 精品課
  • 討教題庫
  • 企業服務

    hot

  • 下載APP
  • 證書查詢
  • 關于我們
我問
討教號
搜索
消息
  • 我的文章

    我的關注

    我的問答

    我的秘密

    我的評論

    我的訂閱

    我的打賞

    我的錢包

    我的通知

    我的設置

    退出登錄

  • ×

    登錄

    討教 | 通行證

    登錄
    立即注冊
    忘記密碼?
    使用微信登錄

    提問 ×

    寫下你的問題,準確的表述更容易得到答案

    類型話題

    選擇支付方式
    您的討教幣 111 付費金額

    国产第一亚洲_浪货一天不做就难受呀_欧洲视频在线观看_亚洲精品一区二区三区美女

    你是一直認為 count(1) 比 count(*) 效率高么?

    JAVA葵花寶典
    2019-06-20 17:04:25
    16篇 作品
    2015 總閱讀量

    MySQL count(1) 真的比 count(*) 快么? 反正同事們都是這么說的,我也姑且覺得對吧,那么沒有自己研究一下究竟?如果我告訴你他們一樣,你信么?

    有 Where 條件的 count,會根據掃碼結果count 一下所有的行數,其性能更依賴于你的 Where 條件,所以文章我們僅針對沒有 Where 的情況進行說明。

    MyISAM 引擎會把一個表的總行數記錄了下來,所以在執行 count(*) 的時候會直接返回數量,執行效率很高。在 MySQL 5.5 以后默認引擎切換為 InnoDB,InnoDB 因為增加了版本控制(MVCC)的原因,同時有多個事務訪問數據并且有更新操作的時候,每個事務需要維護自己的可見性,那么每個事務查詢到的行數也是不同的,所以不能緩存具體的行數,他每次都需要 count 一下所有的行數。那么 count(1) 和 count(*)有區別么?

    InnoDB handles SELECT COUNT(*) and SELECT COUNT(1) operations in the same way. There is no performance difference. 這是官網的解釋,直接點擊閱讀原文查看官文,所以兩種實現其實一樣,那么具體為什么一樣呢?

    探究這個問題首先我們需要理解 count 的含義,如下是官網給出的定義

    Returns a count of the number of non-NULL values of expr in the rows retrieved by a SELECT statement. The result is a BIGINT value.

    大致的解釋是返回 SELECT 語句檢索的行中 expr 的非 NULL 值的計數,到這里我們就明白了,首先它是一個聚合函數,然后對 SELECT 的結果集進行計數,但是需要參數不為 NULL。那么我們繼續閱讀官網的內容:

    COUNT(*) is somewhat different in that it returns a count of the number of rows retrieved, whether or not they contain NULL values.

    大致的內容是說,count(*) 不同,他不關心這個返回值是否為空都會計算他的count,因為 count(1) 中的 1 是恒真表達式,那么 count(*) 還是 count(1) 都是對所有的結果集進行 count,所以他們本質上沒有什么區別。

    當然這個地方 InnoDB 本身也做了一些優化,它會使用最小的二級索引來進行 count 的查詢優化。如果沒有二級索引才會選擇聚簇索引,這樣的設計單從 IO 的角度就節省了很多開銷。

    到這里我們明白了 count(*) 和 count(1) 本質上面其實是一樣的,那么 count(column) 又是怎么回事呢?

    count(column) 也是會遍歷整張表,但是不同的是它會拿到 column 的值以后判斷是否為空,然后再進行累加,那么如果針對主鍵需要解析內容,如果是二級所以需要再次根據主鍵獲取內容,又是一次 IO 操作,所以 count(column) 的性能肯定不如前兩者嘍,如果按照效率比較的話:count(*)=count(1)>count(primary key)>count(column)

    既然 count(*) 在查詢上依賴于所有的數據集,是不是我們在設計上也需要盡量的規避全量 count 呢?通常情況我們針對可預見的 count 查詢會做適當的緩存,可以是 Redis,也可以是獨立的 MySQL count 表,當然無論是哪種方式我們都需要考慮一致性的問題。

    到這里文章就結束了,你對 count() 有了重新的認識么?文中提到了一些關鍵字:聚簇索引、InnoDB、MyISAM、MVCC 不是本文的重點,有興趣可以持續關注訂閱號或置頂,后面會針對這些關鍵字逐一展開說明。


    本網站內容僅代表作者本人的觀點,不代表本網站的觀點和看法,與本網站立場無關,如有侵權請聯系討教。
    給作者打賞,鼓勵TA抓緊創作
    0人打賞金額
    JAVA葵花寶典
    16篇 作品
    2015 總閱讀量
    評論
    您可能感興趣的文章

    項目管理服務模式

    敏捷項目管理與傳統項目管理比較

    項目管理的特點

    PMO是什么?是管項目經理的嘛?

    項目經理必須關注的開會十大關鍵問題!

    項目的組成要素

    熱門話題 更多話題
    精益生產 質量管理 智能制造
    職場效率 項目管理 討教
    AI 大數據 六西格瑪
    ×

    給作者打賞,鼓勵TA抓緊創作!

    選擇支付方式
    選擇打賞金額
    注:打賞的收益歸作者,非平臺

    微信掃描支付

    打賞金額: 1元

    ×

    給作者打賞,鼓勵TA抓緊創作!

    您的討教幣
    填寫您打賞討教幣數量
    輸入密碼

    111

    注:打賞的收益歸作者,非平臺

    微信掃描支付

    打賞金額: 1元

    国产第一亚洲_浪货一天不做就难受呀_欧洲视频在线观看_亚洲精品一区二区三区美女

          9000px;">

                国产一区二区视频在线| 91麻豆高清视频| 久久99久久99精品免视看婷婷 | 99久久99久久综合| 欧美亚洲图片小说| 国产日韩一级二级三级| 日韩电影在线看| 91在线观看视频| 日韩精品一区二区三区swag | 国产精品色婷婷| 日韩主播视频在线| 色一情一乱一乱一91av| 久久色在线观看| 亚欧色一区w666天堂| 成人免费视频免费观看| 日韩欧美一区在线观看| 亚洲制服丝袜av| 成人激情av网| 久久人人超碰精品| 麻豆精品视频在线观看免费| 91黄色在线观看| 国产精品美女久久久久久2018| 久久精品国产99国产精品| 欧美日韩电影一区| 亚洲一区av在线| 成人av电影在线网| 国产欧美一区二区精品久导航 | 麻豆成人免费电影| 欧美亚洲一区二区三区四区| 国产精品视频九色porn| 国产精品资源网| 久久久久久毛片| 国产精品一二二区| 久久人人超碰精品| 裸体健美xxxx欧美裸体表演| 91精品国产色综合久久久蜜香臀| 亚洲在线一区二区三区| 波多野结衣中文字幕一区二区三区| 91精品国产乱码久久蜜臀| 亚洲一区二区三区四区在线免费观看 | 亚洲欧美日韩成人高清在线一区| 国产成人福利片| 亚洲国产激情av| 99精品欧美一区二区三区小说| 中文字幕免费观看一区| 国产69精品久久99不卡| 欧美国产精品一区| 成人av午夜影院| 成人欧美一区二区三区白人| 94色蜜桃网一区二区三区| 综合久久久久久| 91美女片黄在线| 欧美极品aⅴ影院| 99在线视频精品| 亚洲久本草在线中文字幕| 色婷婷激情久久| 亚洲成人一区在线| 日韩一级片在线观看| 国产综合久久久久久久久久久久 | 欧美大片顶级少妇| 国产一区二区三区| 国产精品欧美久久久久一区二区| 成人免费视频视频在线观看免费| 国产精品国产精品国产专区不蜜| 波多野结衣精品在线| 亚洲欧美成人一区二区三区| 欧美丝袜自拍制服另类| 日本成人超碰在线观看| 久久精品视频一区| 97se亚洲国产综合自在线不卡| 伊人一区二区三区| 欧美大尺度电影在线| 高清国产午夜精品久久久久久| 亚洲精品国产一区二区精华液| 欧美日韩第一区日日骚| 国产一区二区在线观看视频| 中文字幕精品三区| 欧洲亚洲精品在线| 国内精品在线播放| 亚洲黄色在线视频| 欧美刺激午夜性久久久久久久| 国产黄人亚洲片| 亚洲综合免费观看高清完整版| 欧美高清视频不卡网| 国产98色在线|日韩| 亚洲一区二区三区爽爽爽爽爽| 91麻豆精品国产91| 成人免费看的视频| 日韩成人免费电影| 亚洲视频一二三| 欧美麻豆精品久久久久久| 丁香另类激情小说| 奇米精品一区二区三区在线观看| 久久精品一级爱片| 欧美日韩一区二区三区在线看| 国产91在线观看丝袜| 日本不卡视频在线观看| 亚洲欧美激情一区二区| 欧美va亚洲va香蕉在线| 欧美日本视频在线| 91香蕉视频mp4| 国产精品资源在线| 免费成人在线网站| 亚洲黄色小视频| 自拍偷自拍亚洲精品播放| 精品美女被调教视频大全网站| 欧洲精品视频在线观看| 懂色av中文一区二区三区| 三级不卡在线观看| 亚洲永久精品国产| 亚洲四区在线观看| 国产精品三级av| 精品国偷自产国产一区| 欧美一区午夜视频在线观看| 日本电影欧美片| 99re热视频这里只精品| 粉嫩13p一区二区三区| 日韩电影免费一区| 五月开心婷婷久久| 一区二区三区免费在线观看| 亚洲欧洲精品天堂一级| 中文字幕国产一区| 国产精品久久久久久久午夜片| 日韩一级免费一区| 欧美一级艳片视频免费观看| 欧洲人成人精品| 欧美性生交片4| 9久草视频在线视频精品| 久草这里只有精品视频| 精品系列免费在线观看| 久久精品国产在热久久| 日本欧美肥老太交大片| 美腿丝袜一区二区三区| 美腿丝袜亚洲综合| 国产自产2019最新不卡| 国产成人aaaa| www.在线成人| 欧美在线不卡一区| 欧美一区二区三区视频在线| 欧美一三区三区四区免费在线看| 日韩免费看的电影| 日韩精品中文字幕一区二区三区| 精品福利二区三区| 国产精品国产三级国产aⅴ入口| 亚洲欧美日韩国产中文在线| 国产在线精品免费| 成人国产精品免费观看视频| 9人人澡人人爽人人精品| 欧美日韩国产另类一区| 日韩精品一区二区三区视频在线观看| 9191精品国产综合久久久久久| 欧美福利一区二区| 久久蜜桃一区二区| 亚洲人成在线播放网站岛国 | 国产精品你懂的在线| 一区二区在线观看免费视频播放 | 麻豆精品一区二区av白丝在线| 黄网站免费久久| www..com久久爱| 久久日韩粉嫩一区二区三区| 欧美成人vr18sexvr| 中文一区在线播放| 亚洲制服丝袜在线| 精品一区二区三区欧美| 97精品久久久久中文字幕| 538在线一区二区精品国产| 久久午夜免费电影| 亚洲图片欧美激情| 日韩精品乱码免费| 国产91精品欧美| 欧美一区二区精品在线| 国产片一区二区| 亚洲成人在线免费| 成a人片亚洲日本久久| 欧美精品亚洲一区二区在线播放| 国产三级精品三级| 日韩精品电影一区亚洲| 成人黄色大片在线观看| 日韩欧美黄色影院| 亚洲国产一区二区在线播放| 国产寡妇亲子伦一区二区| 欧美色精品在线视频| 国产视频911| 奇米色一区二区三区四区| 欧美在线免费观看亚洲| 国产精品久久久久一区| 久久国产生活片100| 欧美日韩在线观看一区二区| 国产精品素人视频| 激情综合亚洲精品| 777亚洲妇女| 亚洲国产成人av| 91原创在线视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美剧在线免费观看网站| 中文字幕一区在线观看视频| 久久97超碰色| 91精品国产入口在线| 亚洲高清不卡在线观看| 色婷婷一区二区|