4 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
肯定有緩存的,應(yīng)該不會(huì)太影響效率。
另外,有N個(gè)條件,那么對(duì)應(yīng)的條件組合就有2^N個(gè),你要寫多少不同的sql呢?

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
1、where后面帶很多個(gè)if test條件的情況在查詢功能里很常見,十多二十個(gè)查詢條件也很見慣;
2、MyBatis既然提供if test標(biāo)簽功能,肯定是有優(yōu)化過得,比起你寫多個(gè)SQL再通過Java代碼判斷分流,肯定效率高很多;
3、執(zhí)行速度影響的大塊是數(shù)據(jù)庫(kù)服務(wù)器的硬件配置和數(shù)據(jù)庫(kù)平臺(tái),作為普通程序員,還不需要考慮那么多,實(shí)在擔(dān)心這個(gè)問題,也可以將自己的代碼放在測(cè)試環(huán)境進(jìn)行壓力測(cè)試;
4、相比查詢條件的變化,查詢結(jié)果列的變化更影響效率,因?yàn)樾枰謩?dòng)關(guān)閉緩存remapResults
<select id="verificationCode_select" parameterClass="String" resultClass="HashMap" remapResults="true">$sql$</select>
綜上所述,不管行不行,先把代碼和SQL寫出來測(cè)試再說吧!
添加回答
舉報(bào)