SQL 查找是否"存在",別再 count 了,很耗費(fèi)時間的!
閱讀本文大概需要 2 分鐘。
來自:https://zhuanlan.zhihu.com/p/158794137
目前多數(shù)人的寫法
#### 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í)行這里的代碼
}
優(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í)行這里的代碼
}
count,而是改用LIMIT 1,讓數(shù)據(jù)庫查詢時遇到一條就返回,不要再繼續(xù)查找還有多少條了總結(jié)
推薦閱讀:
柬埔寨開發(fā)offer到手,薪資翻倍,去嗎?網(wǎng)友:面向閻王編程...
面試必問!JDK 中定時器是如何實(shí)現(xiàn)的?
最近面試BAT,整理一份面試資料《Java面試BATJ通關(guān)手冊》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。
朕已閱 
評論
圖片
表情

