根據(jù)某一條件從數(shù)據(jù)庫表中查詢 『有』與『沒有』,只有兩種狀態(tài),那為什么在寫SQL的時候,還要select count(*) 呢?
無論是剛入道的程序員新星,還是精湛沙場多年的程序員老白,都是一如既往的count.
目前多數(shù)人的寫法
多次 review 代碼時,發(fā)現(xiàn)如現(xiàn)現(xiàn)象:
業(yè)務代碼中,需要根據(jù)一個或多個條件,查詢是否存在記錄,不關心有多少條記錄。普遍的SQL及代碼寫法如下
SQL寫法:
Java寫法:
是不是感覺很OK,沒有什么問題
優(yōu)化方案
推薦寫法如下:
SQL寫法:
Java寫法:
SQL不再使用count,而是改用LIMIT 1,讓數(shù)據(jù)庫查詢時遇到一條就返回,不要再繼續(xù)查找還有多少條了
業(yè)務代碼中直接判斷是否非空即可
總結
根據(jù)查詢條件查出來的條數(shù)越多,性能提升的越明顯,在某些情況下,還可以減少聯(lián)合索引的創(chuàng)建。
責任編輯人:CC
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
原文標題:SQL判斷是否"存在",還在用 count 操作?很耗時的!
文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關注!文章轉載請注明出處。
相關推薦
Java注解可以說是我們編碼過程中最常用的。本篇文章將給大家介紹Java注解的概念、作用以及如何使用注解來提升代碼的可讀性和靈活性,并介紹如何通過注解來優(yōu)化我們的Java
發(fā)表于 09-30 11:39
?679次閱讀
1嵌入式SQL嵌入式SQL是指將SQL語言嵌入到程序設計語言中,被嵌入得程序設計語言如C、C++、java等稱為宿主語言預編譯:由數(shù)據(jù)庫管理系統(tǒng)得預處理程序隊源程序進行掃描,識別出嵌入
發(fā)表于 11-09 06:24
JAVA版聊天軟件源代碼
一款用JAVA制作開發(fā)的小型聊天軟件,里面附有安裝程序和JAVA源代碼。.rar
發(fā)表于 03-11 14:21
?0次下載
網(wǎng)絡的廣泛應用給社會帶來極大便捷,網(wǎng)絡安全特別是SQL 注入也成為了一個倍受關注的問題。與此同時,Java Web 由于其平臺無關性、“一次編寫、隨處運行”,使得越來越多的程序員加入到Java 當中。本文在分析了
發(fā)表于 02-26 15:59
?12次下載
本文檔的主要內容詳細介紹的是使用java語言導入SQL到MySql的源代碼免費下載。
發(fā)表于 09-23 16:38
?3次下載
Java異常的習題和代碼分析
發(fā)表于 07-08 14:54
?5次下載
的count 目前多數(shù)人的寫法 多次REVIEW代碼時,發(fā)現(xiàn)如現(xiàn)現(xiàn)象:業(yè)務代碼中,需要根據(jù)一個或多個條件,查詢是否存在記錄,不關心有多少條記錄。普遍的SQL及
發(fā)表于 07-26 10:57
?2087次閱讀
RushOrm 通過將 java 類映射到 SQL 表來取代對 SQL 的需求。 為什么要編寫 RushOrm? 復雜的關系 - RushObjects 支持其他 RushObjects 的列表
發(fā)表于 04-13 09:59
?2次下載
這種寫法是比較丑陋的,為了避免上述丑陋的寫法,讓丑陋的設計變得優(yōu)雅。JAVA8提供了Optional類來優(yōu)化這種寫法,接下來的正文部分進行詳細說明
發(fā)表于 04-24 15:18
?1118次閱讀
昨天在群里看到有小伙伴問,Java里如何解析SQL語句然后格式化SQL,是否有現(xiàn)成類庫可以使用?
發(fā)表于 04-10 11:59
?1019次閱讀
基于JAVA+SQL電子通訊錄帶系統(tǒng)托盤(源代碼及配置文檔)
發(fā)表于 06-09 16:07
?0次下載
實現(xiàn)簡單,SQL 也能走索引,而且只查詢一次數(shù)據(jù)庫,感覺可行
只是:有點不好理解,因為我們平時這么用的少,所以這種寫法看起來很陌生
另外,行行比較是 SQL 規(guī)范,不是某個關系型數(shù)據(jù)庫的規(guī)范,也就說關系型數(shù)據(jù)庫都應該支持這種
發(fā)表于 07-17 09:51
?506次閱讀
Java項目防止SQL注入方式
這里總結4種:
PreparedStatement防止SQL注入
mybatis中#{}防止SQL注入
對請求參數(shù)的敏感詞匯進行過濾
ngin
發(fā)表于 10-16 14:26
?629次閱讀
INSERT INTO是MySQL中常用的一種SQL語句,用于將數(shù)據(jù)插入到表中。此文將詳細介紹INSERT INTO語句的三種不同寫法及其用途,并提供代碼示例和相關解釋。 正文: 一、基本插入
發(fā)表于 11-21 14:18
?1.4w次閱讀
在SQL數(shù)據(jù)庫開發(fā)和管理中,常見的錯誤代碼及其解決方案可以歸納如下: 一、語法錯誤(Syntax Errors) 錯誤代碼 :無特定代碼,但通常會在錯誤消息中明確指出是語法錯誤。 原因
發(fā)表于 11-19 10:21
?2765次閱讀
評論