天天看點

判斷“存在“你還在用count嗎,細節決定成敗1. 為什麼要用count(*)2. 優化方案

@[toc]

判斷“存在“你還在用count嗎,細節決定成敗1. 為什麼要用count(*)2. 優化方案

1. 為什麼要用count(*)

在我們實際開發中,業務 往往是 如:(判斷該手機是否已經存在),我們為了提高程式的運作效率,這個時候都會使用

select count(*) from sys_user where phone = '18217692100'           
判斷“存在“你還在用count嗎,細節決定成敗1. 為什麼要用count(*)2. 優化方案
//而我們Java代碼
Integer count = mapper.selectCount(phone);
//寫業務代碼
if(count != 0){
  ……
else{
  ……
}           

2. 優化方案

select 1 from sys_user where phone = '1821762100' LIMIT 1           
判斷“存在“你還在用count嗎,細節決定成敗1. 為什麼要用count(*)2. 優化方案
//而我們Java代碼
Integer count = mapper.selectCount(phone);
//寫業務代碼
if(count != null){
  ……
else{
  ……
}           
  • SQL不再使用count,而是改用LIMIT 1,讓資料庫查詢時遇到一條就傳回,不要再繼續查找還有多少條了

    業務代碼中直接判斷是否非空即可

  • 正所謂 ,細節決定成敗 ,從速度上可以看出我們的優化方案快了好多

個人部落格位址:

http://blog.yanxiaolong.cn/