成人免费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

2009-07-06 18:18:41

SQL Server全

2010-10-20 10:55:54

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優化

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

2010-07-21 09:58:21

SQL Server全

2015-07-13 11:39:25

SphinxSQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 高清欧美性猛交 | 日韩欧美视频 | 欧美精品一区久久 | av毛片免费 | 精品国产乱码久久久久久88av | 在线观看日本高清二区 | 日韩国产在线观看 | 成人欧美一区二区 | 极品粉嫩国产48尤物在线播放 | 一区二区三区视频播放 | 国产精品一区二区无线 | 午夜av影院| 久操亚洲 | 久久精彩视频 | 日韩视频―中文字幕 | 在线视频 欧美日韩 | 亚洲国产中文字幕 | 美女黄网站视频免费 | 日本超碰 | 中文字幕一区二区三区日韩精品 | 97国产在线观看 | 日韩中文电影 | 久久草在线视频 | 特一级黄色毛片 | 国产欧美性成人精品午夜 | av在线免费网站 | 国产精品久久久久久久久久 | 成人久久久 | 亚洲性人人天天夜夜摸 | 国产精品99久久久久久动医院 | 国产综合视频 | 亚洲人成人一区二区在线观看 | 男女羞羞视频免费 | 亚洲一区二区三区久久久 | 国产激情在线观看 | 日日操操操 | 亚洲人在线观看视频 | 久久久久久久久淑女av国产精品 | 欧美一区二区在线播放 | 91免费观看 | 亚洲精品国产成人 |