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

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

 更新時間:2020年12月18日 09:57:52   作者:java面試筆試  
這篇文章主要介紹了SQL判斷是否"存在",還在用 count 操作?很耗時的!本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

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

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

業(yè)務(wù)代碼中,需要根據(jù)一個或多個條件,查詢是否存在記錄,不關(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)存在時,執(zhí)行這里的代碼
} else {
 //當(dāng)不存在時,執(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 ) {
 //當(dāng)存在時,執(zhí)行這里的代碼
} else {
 //當(dāng)不存在時,執(zhí)行這里的代碼
}

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

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

總結(jié)

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

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

相關(guān)文章

最新評論

兰溪市| 山西省| 托克逊县| 黄浦区| 阜康市| 墨脱县| 高青县| 铁岭市| 中方县| 泸定县| 九龙县| 榆林市| 阳曲县| 平湖市| 巢湖市| 衡阳县| 陇西县| 启东市| 阜新市| 瑞昌市| 荣成市| 全椒县| 建宁县| 公主岭市| 武宁县| 辽宁省| 桃园市| 蒙阴县| 大余县| 定兴县| 白朗县| 九寨沟县| 九江县| 太原市| 饶阳县| 乌鲁木齐市| 辽中县| 从江县| 班玛县| 潼南县| 蒙城县|