開發與維運

判斷“存在“你還在用count嗎,細節決定成敗

@[toc]
在這裡插入圖片描述

1. 為什麼要用count(*)

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

select count(*) from sys_user where phone = '18217692100'

在這裡插入圖片描述

//而我們Java代碼
Integer count = mapper.selectCount(phone);
//寫業務代碼
if(count != 0){
  ……
else{
  ……
}

2. 優化方案

select 1 from sys_user where phone = '1821762100' LIMIT 1

在這裡插入圖片描述

//而我們Java代碼
Integer count = mapper.selectCount(phone);
//寫業務代碼
if(count != null){
  ……
else{
  ……
}
  • SQL不再使用count,而是改用LIMIT 1,讓數據庫查詢時遇到一條就返回,不要再繼續查找還有多少條了
    業務代碼中直接判斷是否非空即可
  • 正所謂 ,細節決定成敗 ,從速度上可以看出我們的優化方案快了好多

個人博客地址:http://blog.yxl520.cn/

Leave a Reply

Your email address will not be published. Required fields are marked *