您好,登錄后才能下訂單哦!
這篇文章主要講解了“SQL查找怎么優(yōu)化”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SQL查找怎么優(yōu)化”吧!
##### 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,讓數據庫查詢時遇到一條就返回,不要再繼續(xù)查找還有多少條了
COUNT()有兩個非常不同的作用:它可以統計某個列值的數量,也可以統計行數。在統計列值時要求列值是非空的(不統計NULL)。如果在COUNT()的括號中定了列或者列表達式,則統計的就是這個表達式有值的結果數。......COUNT()的另一個作用是統計結果集的行數。當MySQL確認括號內的表達式值不可能為空時,實際上就是在統計行數。最簡單的就是當我們使用COUNT(*)的時候,這種情況下通配符*并不像我們猜想的那樣擴展成所有的列,實際上,他會忽略所有列而直接統計所有的行數。
感謝各位的閱讀,以上就是“SQL查找怎么優(yōu)化”的內容了,經過本文的學習后,相信大家對SQL查找怎么優(yōu)化這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。