<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-31  評(píng)論-2  文章-0  trackbacks-0

    在處理一個(gè)大數(shù)據(jù)量數(shù)據(jù)庫(kù)的時(shí)候
    突然發(fā)現(xiàn)mysql對(duì)于count(*)的不同處理會(huì)造成不同的結(jié)果

    比如執(zhí)行
    SELECT count(*) FROM tablename
    即使對(duì)于千萬(wàn)級(jí)別的數(shù)據(jù)mysql也能非常迅速的返回結(jié)果
    而對(duì)于
    SELECT count(*) FROM tablename WHERE…..
    mysql的查詢時(shí)間開(kāi)始攀升

    仔細(xì)查閱累下手冊(cè),發(fā)現(xiàn)當(dāng)沒(méi)有WHERE語(yǔ)句對(duì)于整個(gè)mysql的表進(jìn)行count運(yùn)算的時(shí)候
    MyISAM類型的表中保存有總的行數(shù),而當(dāng)添加有WHERE限定語(yǔ)句的時(shí)候Mysql需要對(duì)整個(gè)表進(jìn)行檢索
    從而得出count的數(shù)值

    突然又想起來(lái)看到的不少新興的php程序?qū)τ赾ount的處理并沒(méi)有很好的意思到這點(diǎn)
    記錄下

    順便提下mysql的DISTINCT的關(guān)鍵字有很多你想不到的用處
    1.在count 不重復(fù)的記錄的時(shí)候能用到
    比如SELECT COUNT( DISTINCT id ) FROM tablename;
    就是計(jì)算talbebname表中id不同的記錄有多少條

    2,在需要返回記錄不同的id的具體值的時(shí)候可以用
    比如SELECT DISTINCT id FROM tablename;
    返回talbebname表中不同的id的具體的值

    3.上面的情況2對(duì)于需要返回mysql表中2列以上的結(jié)果時(shí)會(huì)有歧義
    比如SELECT DISTINCT id, type FROM tablename;
    實(shí)際上返回的是 id與type同時(shí)不相同的結(jié)果,也就是DISTINCT同時(shí)作用了兩個(gè)字段,必須得id與tyoe都相同的才被排除了,與我們期望的結(jié)果不一樣

    4.這時(shí)候可以考慮使用group_concat函數(shù)來(lái)進(jìn)行排除,不過(guò)這個(gè)mysql函數(shù)是在mysql4.1以上才支持的

    5.其實(shí)還有另外一種解決方式,就是使用
    SELECT id, type, count(DISTINCT id) FROM tablename
    雖然這樣的返回結(jié)果多了一列無(wú)用的count數(shù)據(jù)(或許你就需要這個(gè)我說(shuō)的無(wú)用數(shù)據(jù))
    返回的結(jié)果是 只有id不同的所有結(jié)果和上面的4類型可以互補(bǔ)使用,就是看你需要什么樣的數(shù)據(jù)了


    posted on 2008-10-07 14:46 xiaoxinchen 閱讀(252) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲福利精品电影在线观看| 久久精品国产亚洲av麻豆| 亚洲黄片手机免费观看| 亚洲va在线va天堂va不卡下载| 成年女人男人免费视频播放| 国产免费一级高清淫曰本片| 亚洲免费一级视频| 久久久久无码专区亚洲av | 好吊妞788免费视频播放| 污网站免费在线观看| 亚洲欧洲日本天天堂在线观看| 免费又黄又爽的视频| 亚洲美女免费视频| 日亚毛片免费乱码不卡一区| 亚洲国产综合精品| 国产AV无码专区亚洲AVJULIA| 免费毛片在线看片免费丝瓜视频| 国产一区二区三区免费观在线| 亚洲一日韩欧美中文字幕在线| 亚洲av午夜福利精品一区人妖| 四虎永久在线精品视频免费观看| 亚洲乱码国产一区网址| 日本免费网站视频www区| 久久久久久av无码免费看大片| 一本色道久久88亚洲精品综合| 亚洲AV无码成人网站久久精品大| 在线a亚洲v天堂网2018| 青苹果乐园免费高清在线| 久久午夜免费鲁丝片| 特a级免费高清黄色片| 亚洲乱码中文字幕在线| 亚洲精品专区在线观看| 99久久免费精品国产72精品九九| 免费成人在线视频观看| 一级毛片免费播放视频| 亚洲av永久无码| 亚洲综合无码一区二区痴汉| 亚洲成人免费电影| 色婷婷六月亚洲婷婷丁香| 亚洲精品成人无限看| 亚洲日本中文字幕天堂网|