主頁(yè) > 知識(shí)庫(kù) > SQL判斷是否存在,還在用 count 操作?很耗時(shí)的!

SQL判斷是否存在,還在用 count 操作?很耗時(shí)的!

熱門標(biāo)簽:武漢AI電銷機(jī)器人 南京電銷外呼系統(tǒng)哪家好 股票配資電銷機(jī)器人 電銷機(jī)器人 深圳 地圖標(biāo)注如何弄全套標(biāo) 外呼系統(tǒng)會(huì)封嗎 在電子版地圖標(biāo)注要收費(fèi)嗎 萬(wàn)利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 實(shí)體店地圖標(biāo)注怎么標(biāo)

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

無(wú)論是剛?cè)氲赖某绦騿T新星,還是精湛沙場(chǎng)多年的程序員老白,都是一如既往的count.

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

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

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

SQL寫法:

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

Java寫法:

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

是不是感覺(jué)很OK,沒(méi)有什么問(wèn)題

優(yōu)化方案

推薦寫法如下:

SQL寫法:

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

Java寫法:

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

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

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

總結(jié)

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

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

您可能感興趣的文章:
  • Mysql判斷表字段或索引是否存在
  • sql server中判斷表或臨時(shí)表是否存在的方法
  • SQL SERVER先判斷視圖是否存在然后再創(chuàng)建視圖的語(yǔ)句
  • mysql判斷字段是否存在的方法
  • SQL判斷字段列是否存在的方法
  • mysql中判斷記錄是否存在方法比較
  • mySQL count多個(gè)表的數(shù)據(jù)實(shí)例詳解
  • sql中count或sum為條件的查詢示例(sql查詢count)

標(biāo)簽:廣東 臺(tái)州 濟(jì)源 安徽 濟(jì)寧 武威 泰安 汕頭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL判斷是否存在,還在用 count 操作?很耗時(shí)的!》,本文關(guān)鍵詞  SQL,判斷,是否,存在,還,在用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL判斷是否存在,還在用 count 操作?很耗時(shí)的!》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于SQL判斷是否存在,還在用 count 操作?很耗時(shí)的!的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章