成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL查“存在”不靠COUNT,揭秘高效檢索法

數據庫 其他數據庫
SQL不再使用count,而是改用LIMIT 1,讓數據庫查詢時遇到一條就返回,不要再繼續查找還有多少條了,業務代碼中直接判斷是否非空即可。

根據某一條件從數據庫表中查詢 『有』與『沒有』,只有兩種狀態,那為什么在寫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,讓數據庫查詢時遇到一條就返回,不要再繼續查找還有多少條了,業務代碼中直接判斷是否非空即可。

總結

根據查詢條件查出來的條數越多,性能提升的越明顯,在某些情況下,還可以減少聯合索引的創建。

責任編輯:武曉燕 來源: 一安未來
相關推薦

2020-12-03 09:05:38

SQL代碼方案

2012-04-20 12:30:23

2020-07-28 17:08:43

SQL數據庫

2011-12-26 14:11:47

三星Android

2023-08-11 09:00:00

2025-04-09 09:10:00

開發ViteVue

2014-08-04 09:30:43

170

2010-10-20 10:55:54

SQL Server全

2009-07-06 18:18:41

SQL Server全

2010-11-10 14:18:15

SQL SERVER全

2010-05-28 18:53:36

配置SVN1.4.5

2011-09-16 13:15:38

SQL Server優化

2025-07-03 04:00:00

2021-07-29 11:00:43

Hologres QPS 在線服務

2012-08-06 10:09:52

2024-06-05 08:14:26

SpringElasticsea人臉數據

2011-03-29 12:42:25

SQL Server 高效性

2010-01-04 15:27:31

ADO.NET SQL

2015-07-13 11:39:25

SphinxSQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91麻豆精品国产91久久久资源速度 | 欧美 中文字幕 | 99久久精品国产一区二区三区 | 成人网视频 | 免费在线观看一区二区 | 综合久久网 | 国产伦精品一区二区三区照片91 | 午夜精品久久久久久久久久久久久 | www.国产91 | 91看片在线观看 | 99re在线观看| 国产婷婷 | 国产日韩久久 | 欧美激情国产日韩精品一区18 | 亚洲精品一区二三区不卡 | 国产天堂 | 亚洲精品在线免费观看视频 | 国产99久久精品一区二区永久免费 | 精品久久精品 | 日韩av在线一区二区三区 | 国产一级一级毛片 | 91精品久久久久久久99 | 91社区在线观看播放 | 人人射人人插 | 久久51 | 日本午夜在线视频 | 国产欧美精品 | 在线视频日韩 | 欧美在线精品一区 | 99看片网| 另类专区成人 | 蜜桃一区二区三区 | 国产精品18hdxxxⅹ在线 | 亚洲精品视频三区 | 亚洲成人观看 | 国产精品亚洲综合 | 国产一区不卡在线观看 | 97久久精品午夜一区二区 | 成人在线播放 | 午夜三级网站 | 精品一区久久 |