婷婷久久综合九色综合,欧美成色婷婷在线观看视频,偷窥视频一区,欧美日本一道道一区二区

<tt id="bu9ss"></tt>
  • <span id="bu9ss"></span>
  • <pre id="bu9ss"><tt id="bu9ss"></tt></pre>
    <label id="bu9ss"></label>

    當前位置:首頁 >  站長 >  數(shù)據(jù)庫 >  正文

    SQL判斷是否"存在",還在用 count 操作?很耗時的

     2021-01-06 16:16  來源: 腳本之家   我來投稿 撤稿糾錯

      阿里云優(yōu)惠券 先領券再下單

    這篇文章主要介紹了SQL判斷是否"存在",還在用 count 操作?很耗時的!本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

    根據(jù)某一條件從數(shù)據(jù)庫表中查詢 『有』與『沒有』,只有兩種狀態(tài),那為什么在寫SQL的時候,還要select count(*) 呢?

    無論是剛入道的程序員新星,還是精湛沙場多年的程序員老白,都是一如既往的count.

    目前多數(shù)人的寫法

    多次 review 代碼時,發(fā)現(xiàn)如現(xiàn)現(xiàn)象:

    業(yè)務代碼中,需要根據(jù)一個或多個條件,查詢是否存在記錄,不關心有多少條記錄。普遍的SQL及代碼寫法如下

    SQL寫法:

    SELECT count(*) FROM table WHERE a = 1 AND b = 2

    Java寫法:

    int nums = xxDao.countXxxxByXxx(params);
    if ( nums > 0 ) {
    //當存在時,執(zhí)行這里的代碼
    } else {
    //當不存在時,執(zhí)行這里的代碼
    }

    是不是感覺很OK,沒有什么問題

    優(yōu)化方案

    推薦寫法如下:

    SQL寫法:

    SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1

    Java寫法:

    Integer exist = xxDao.existXxxxByXxx(params);
    if ( exist != NULL ) {
    //當存在時,執(zhí)行這里的代碼
    } else {
    //當不存在時,執(zhí)行這里的代碼
    }

    SQL不再使用count,而是改用LIMIT 1,讓數(shù)據(jù)庫查詢時遇到一條就返回,不要再繼續(xù)查找還有多少條了

    業(yè)務代碼中直接判斷是否非空即可

    總結

    根據(jù)查詢條件查出來的條數(shù)越多,性能提升的越明顯,在某些情況下,還可以減少聯(lián)合索引的創(chuàng)建。

    到此這篇關于SQL判斷是否"存在",還在用 count 操作?很耗時的!的文章就介紹到這了,更多相關SQL判斷是否"存在"內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

    來源:腳本之家

    鏈接:https://www.jb51.net/article/202415.htm

    申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

    相關文章

    熱門排行

    信息推薦