0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SQL和Java的代碼寫法

數(shù)據(jù)分析與開發(fā) ? 來源:CSDN技術(shù)社區(qū) ? 作者:CSDN技術(shù)社區(qū) ? 2020-10-21 10:35 ? 次閱讀

根據(jù)某一條件從數(shù)據(jù)庫(kù)表中查詢 『有』與『沒有』,只有兩種狀態(tài),那為什么在寫SQL的時(shí)候,還要select count(*) 呢?

無論是剛?cè)氲赖?a href="http://ttokpm.com/v/tag/1730/" target="_blank">程序員新星,還是精湛沙場(chǎng)多年的程序員老白,都是一如既往的count.

目前多數(shù)人的寫法

多次 review 代碼時(shí),發(fā)現(xiàn)如現(xiàn)現(xiàn)象:

業(yè)務(wù)代碼中,需要根據(jù)一個(gè)或多個(gè)條件,查詢是否存在記錄,不關(guān)心有多少條記錄。普遍的SQL及代碼寫法如下

SQL寫法:

Java寫法:

是不是感覺很OK,沒有什么問題

優(yōu)化方案

推薦寫法如下:

SQL寫法:

Java寫法:

SQL不再使用count,而是改用LIMIT 1,讓數(shù)據(jù)庫(kù)查詢時(shí)遇到一條就返回,不要再繼續(xù)查找還有多少條了

業(yè)務(wù)代碼中直接判斷是否非空即可

總結(jié)

根據(jù)查詢條件查出來的條數(shù)越多,性能提升的越明顯,在某些情況下,還可以減少聯(lián)合索引的創(chuàng)建。
責(zé)任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2952

    瀏覽量

    104493
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    753

    瀏覽量

    44036

原文標(biāo)題:SQL判斷是否"存在",還在用 count 操作?很耗時(shí)的!

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何通過注解來優(yōu)化我們的Java代碼

    Java注解可以說是我們編碼過程中最常用的。本篇文章將給大家介紹Java注解的概念、作用以及如何使用注解來提升代碼的可讀性和靈活性,并介紹如何通過注解來優(yōu)化我們的Java
    的頭像 發(fā)表于 09-30 11:39 ?578次閱讀

    嵌入式SQL的相關(guān)資料分享

    1嵌入式SQL嵌入式SQL是指將SQL語(yǔ)言嵌入到程序設(shè)計(jì)語(yǔ)言中,被嵌入得程序設(shè)計(jì)語(yǔ)言如C、C++、java等稱為宿主語(yǔ)言預(yù)編譯:由數(shù)據(jù)庫(kù)管理系統(tǒng)得預(yù)處理程序隊(duì)源程序進(jìn)行掃描,識(shí)別出嵌入
    發(fā)表于 11-09 06:24

    JAVA版聊天軟件源代碼

    JAVA版聊天軟件源代碼 一款用JAVA制作開發(fā)的小型聊天軟件,里面附有安裝程序和JAVA代碼。.rar
    發(fā)表于 03-11 14:21 ?0次下載

    如何使用Java Web防范SQL 注入攻擊的資料說明

    網(wǎng)絡(luò)的廣泛應(yīng)用給社會(huì)帶來極大便捷,網(wǎng)絡(luò)安全特別是SQL 注入也成為了一個(gè)倍受關(guān)注的問題。與此同時(shí),Java Web 由于其平臺(tái)無關(guān)性、“一次編寫、隨處運(yùn)行”,使得越來越多的程序員加入到Java 當(dāng)中。本文在分析了
    發(fā)表于 02-26 15:59 ?12次下載
    如何使用<b class='flag-5'>Java</b> Web防范<b class='flag-5'>SQL</b> 注入攻擊的資料說明

    使用java語(yǔ)言導(dǎo)入SQL到MySql的源代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用java語(yǔ)言導(dǎo)入SQL到MySql的源代碼免費(fèi)下載。
    發(fā)表于 09-23 16:38 ?3次下載
    使用<b class='flag-5'>java</b>語(yǔ)言導(dǎo)入<b class='flag-5'>SQL</b>到MySql的源<b class='flag-5'>代碼</b>免費(fèi)下載

    Java異常的習(xí)題和代碼分析

    Java異常的習(xí)題和代碼分析
    發(fā)表于 07-08 14:54 ?5次下載
    <b class='flag-5'>Java</b>異常的習(xí)題和<b class='flag-5'>代碼</b>分析

    SQL告別count改用LIMIT 1

    的count 目前多數(shù)人的寫法 多次REVIEW代碼時(shí),發(fā)現(xiàn)如現(xiàn)現(xiàn)象:業(yè)務(wù)代碼中,需要根據(jù)一個(gè)或多個(gè)條件,查詢是否存在記錄,不關(guān)心有多少條記錄。普遍的SQL
    的頭像 發(fā)表于 07-26 10:57 ?2020次閱讀

    嵌入式SQL

    1嵌入式SQL嵌入式SQL是指將SQL語(yǔ)言嵌入到程序設(shè)計(jì)語(yǔ)言中,被嵌入得程序設(shè)計(jì)語(yǔ)言如C、C++、java等稱為宿主語(yǔ)言預(yù)編譯:由數(shù)據(jù)庫(kù)管理系統(tǒng)得預(yù)處理程序隊(duì)源程序進(jìn)行掃描,識(shí)別出嵌入
    發(fā)表于 11-04 09:21 ?17次下載
    嵌入式<b class='flag-5'>SQL</b>

    RushOrm將java類映射到SQL表來取代對(duì)SQL的需求

    RushOrm 通過將 java 類映射到 SQL 表來取代對(duì) SQL 的需求。 為什么要編寫 RushOrm? 復(fù)雜的關(guān)系 - RushObjects 支持其他 RushObjects 的列表
    發(fā)表于 04-13 09:59 ?2次下載

    JAVA8提供了Optional類來優(yōu)化這種寫法

    這種寫法是比較丑陋的,為了避免上述丑陋的寫法,讓丑陋的設(shè)計(jì)變得優(yōu)雅。JAVA8提供了Optional類來優(yōu)化這種寫法,接下來的正文部分進(jìn)行詳細(xì)說明
    的頭像 發(fā)表于 04-24 15:18 ?1040次閱讀

    Java中如何解析、格式化、生成SQL語(yǔ)句?

    昨天在群里看到有小伙伴問,Java里如何解析SQL語(yǔ)句然后格式化SQL,是否有現(xiàn)成類庫(kù)可以使用?
    的頭像 發(fā)表于 04-10 11:59 ?929次閱讀

    基于JAVA+SQL電子通訊錄帶系統(tǒng)托盤(源代碼及配置文檔)

    基于JAVA+SQL電子通訊錄帶系統(tǒng)托盤(源代碼及配置文檔)
    發(fā)表于 06-09 16:07 ?0次下載

    SQL MySQL編寫技巧:行與行比較的功能

    實(shí)現(xiàn)簡(jiǎn)單,SQL 也能走索引,而且只查詢一次數(shù)據(jù)庫(kù),感覺可行 只是:有點(diǎn)不好理解,因?yàn)槲覀兤綍r(shí)這么用的少,所以這種寫法看起來很陌生 另外,行行比較是 SQL 規(guī)范,不是某個(gè)關(guān)系型數(shù)據(jù)庫(kù)的規(guī)范,也就說關(guān)系型數(shù)據(jù)庫(kù)都應(yīng)該支持這種
    發(fā)表于 07-17 09:51 ?472次閱讀
    <b class='flag-5'>SQL</b> MySQL編寫技巧:行與行比較的功能

    什么是SQL注入?Java項(xiàng)目防止SQL注入方式

    Java項(xiàng)目防止SQL注入方式 這里總結(jié)4種: PreparedStatement防止SQL注入 mybatis中#{}防止SQL注入 對(duì)請(qǐng)求參數(shù)的敏感詞匯進(jìn)行過濾 ngin
    發(fā)表于 10-16 14:26 ?532次閱讀

    insert into 語(yǔ)句的三種寫法

    INSERT INTO是MySQL中常用的一種SQL語(yǔ)句,用于將數(shù)據(jù)插入到表中。此文將詳細(xì)介紹INSERT INTO語(yǔ)句的三種不同寫法及其用途,并提供代碼示例和相關(guān)解釋。 正文: 一、基本插入
    的頭像 發(fā)表于 11-21 14:18 ?1.3w次閱讀