按照某那條件從數據庫附注查看 『有』與『不會』,僅剩幾種狀態,那難道在寫SQL得時候,就要select count(*) 呢?
不管剛入道得程序員新星,畢竟精良沙場三十多年得程序員老白,都是一如既往得count.
目前少數人得讀音
曾多次 review 代碼時,發覺常房現象:
業務代碼中,必須按照這個或十多個條件,查看除非隱含記錄,不關心有甚么條記錄。普遍得SQL及代碼讀音如下
SQL讀音:
SELECT count(*) FROM table WHERe a = 1 AND b = 2
Java讀音:
int nums = xxDao.countXxxxByXxx(params);
if ( nums > 0 ) {
//當隱含時,執行者那兒得代碼
} else {
//利穆縣隱含時,執行者那兒得代碼
}
是不是感覺很OK,不會什么樣問題
優化方案
極力推薦讀音如下:
SQL讀音:
SELECt 1 FROM table WHERe a = 1 AND b = 2 LIMIT 1
Java讀音:
Integer exist = xxDao.existXxxxByXxx(params);
if ( exist != NULL ) {
//當隱含時,執行者那兒得代碼
} else {
//利穆縣隱含時,執行者那兒得代碼
}
SQL無須選用count,所以換用LIMIT 1,讓數據庫查看時碰上那條就抵達,不要再繼續檢索有甚么條了
業務代碼中直接判斷除非非空亦可
總結
按照查看條件確知得條數越多,性能大幅提升拜翁縣大幅度,在這類情況下,還可減低聯合體索引得創辦。
更多文章資訊:感謝分享特別999la感謝原創分享者/article/
感謝:感謝分享特別999la感謝原創分享者/shujukuwz/884764ab9cb1868e4582.html