最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql技巧之select count的區(qū)別分析

 更新時(shí)間:2013年08月19日 22:09:19   作者:  
在工作過(guò)程中,時(shí)不時(shí)會(huì)有開發(fā)咨詢幾種select count()的區(qū)別,我總會(huì)告訴他們使用select count(*) 就好。下文我會(huì)展示幾種sql的執(zhí)行計(jì)劃來(lái)說(shuō)明為啥是這樣。

1.測(cè)試環(huán)境

OS:Linux
DB:mysql-5.5.18
table:innodb存儲(chǔ)引擎

表定義如下:

2. 測(cè)試場(chǎng)景與分析【統(tǒng)計(jì)表group_message的記錄數(shù)目】

(1)select count(*)方式

(2)select count(1)方式

(3)select count(col_name)方式

分別使用

select count(group_id)

select count(user_id)

select count(col_null)

     通過(guò)上述測(cè)試結(jié)果可以看到,select count(*)和select count(1)都使用了group_id這個(gè)最短的二級(jí)索引??赡苡腥藭?huì)問(wèn)為啥不用更短的主鍵索引【int類型】呢,這主要是因?yàn)閕nnodb存儲(chǔ)引擎下,主鍵索引實(shí)質(zhì)包含了索引和數(shù)據(jù),掃描主鍵索引實(shí)際是掃描物理記錄,代價(jià)實(shí)質(zhì)是最大的。再來(lái)看看幾種select count(col_name), count(group_id)使用了最短二級(jí)索引,因?yàn)樵摿芯褪撬饕校欢鴆ount(user_id)則使用了組合索引,由于user_id實(shí)質(zhì)不能利用該索引,但掃描索引也能得到記錄數(shù),而且比掃描物理記錄代價(jià)小,這里應(yīng)該是mysql的一個(gè)優(yōu)化;count(col_null)則不能使用索引,因?yàn)樵摿泻衝ull值,所以效率最低。另外,對(duì)于含有null值的行,count(col_null)實(shí)際不會(huì)統(tǒng)計(jì),這會(huì)與你想統(tǒng)計(jì)表記錄數(shù)目的初衷不符,比如測(cè)試表有852226條記錄,但col_null列只有1行非空,則統(tǒng)計(jì)結(jié)果如下:

3.測(cè)試結(jié)論

mysql中,需要通過(guò)selct count 統(tǒng)計(jì)表記錄數(shù)目時(shí),使用count(*)或count(1)就好。

相關(guān)文章

  • winx64下mysql5.7.19的基本安裝流程(詳細(xì))

    winx64下mysql5.7.19的基本安裝流程(詳細(xì))

    這篇文章主要介紹了winx64下mysql5.7.19的基本安裝流程,需要的朋友可以參考下
    2017-10-10
  • MySQL如何查看建庫(kù)建表語(yǔ)句

    MySQL如何查看建庫(kù)建表語(yǔ)句

    這篇文章主要介紹了MySQL如何查看建庫(kù)建表語(yǔ)句問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解在Windows環(huán)境下訪問(wèn)linux虛擬機(jī)中MySQL數(shù)據(jù)庫(kù)

    詳解在Windows環(huán)境下訪問(wèn)linux虛擬機(jī)中MySQL數(shù)據(jù)庫(kù)

    這篇文章主要介紹了如何Windows環(huán)境下訪問(wèn)linux虛擬機(jī)中MySQL數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • MYSQL 隨機(jī) 抽取實(shí)現(xiàn)方法及效率分析

    MYSQL 隨機(jī) 抽取實(shí)現(xiàn)方法及效率分析

    MYSQL的隨機(jī)抽取實(shí)現(xiàn)方法。舉個(gè)例子,要從tablename表中隨機(jī)提取一條記錄,大家一般的寫法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。
    2009-05-05
  • MySQL同步ES(Elasticsearch)的四種常見方案分享

    MySQL同步ES(Elasticsearch)的四種常見方案分享

    MySQL和Elasticsearch(ES)是兩個(gè)非常重要的數(shù)據(jù)存儲(chǔ)和搜索技術(shù),MySQL是一種關(guān)系型數(shù)據(jù)庫(kù),而ES則是一種文檔型數(shù)據(jù)庫(kù),在許多情況下,我們需要將MySQL中的數(shù)據(jù)同步到ES中,本文將介紹四種常見的MySQL同步ES方案,需要的朋友可以參考下
    2023-07-07
  • MySQL的prepare使用及遇到bug解析過(guò)程

    MySQL的prepare使用及遇到bug解析過(guò)程

    在一次開發(fā)中使用 MySQL PREPARE 以后,從 prepare 直接取 name 賦值給 lex->prepared_stmt_name 然后給 EXECUTE 用,發(fā)現(xiàn)有一定概率找不到 prepare stmt 的 name,于是開始動(dòng)手調(diào)查問(wèn)題發(fā)生的原因,本文給大家分享mysql prepare使用及問(wèn)題解決,感興趣的朋友一起看看吧
    2022-05-05
  • MySQL 中 blob 和 text 數(shù)據(jù)類型詳解

    MySQL 中 blob 和 text 數(shù)據(jù)類型詳解

    本文主要介紹了MySQL中blob和text數(shù)據(jù)類型詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • mysql數(shù)據(jù)庫(kù)在表中添加數(shù)據(jù)三種操作方式

    mysql數(shù)據(jù)庫(kù)在表中添加數(shù)據(jù)三種操作方式

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)在表中添加數(shù)據(jù)三種方式,首先創(chuàng)建數(shù)據(jù)庫(kù)和表,創(chuàng)建完成后就可以進(jìn)行添加數(shù)據(jù)的操作了,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • MySQL數(shù)據(jù)庫(kù)統(tǒng)計(jì)函數(shù)COUNT的使用及說(shuō)明

    MySQL數(shù)據(jù)庫(kù)統(tǒng)計(jì)函數(shù)COUNT的使用及說(shuō)明

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)統(tǒng)計(jì)函數(shù)COUNT的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • MySQL update set 和 and的區(qū)別

    MySQL update set 和 and的區(qū)別

    這篇文章主要介紹了MySQL update set 和 and的區(qū)別,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-05-05

最新評(píng)論

庆阳市| 新乡市| 阿巴嘎旗| 巴青县| 万安县| 常德市| 峨眉山市| 乡城县| 临沭县| 汽车| 盐亭县| 寿宁县| 罗定市| 九江市| 诸暨市| 曲靖市| 逊克县| 三穗县| 青川县| 深州市| 康平县| 古浪县| 庐江县| 桃园县| 江津市| 青州市| 班戈县| 邵阳市| 太保市| 凌海市| 修水县| 平顶山市| 方正县| 綦江县| 八宿县| 宁化县| 安多县| 芦山县| 资源县| 响水县| 松阳县|