chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

SQL告別count改用LIMIT 1

數(shù)據(jù)分析與開發(fā) ? 來(lái)源:今日頭條 ? 作者:程序猿囧途 ? 2021-07-26 10:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

根據(jù)某一條件從數(shù)據(jù)庫(kù)表中查詢 『有』與『沒有』,只有兩種狀態(tài),那為什么在寫SQL的時(shí)候,還要SELECT count(*) 呢?無(wú)論是剛?cè)氲赖?a href="http://www.brongaenegriffin.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寫法:

SELECT count(*) FROM table WHERE a = 1 AND b = 2

##### Java寫法:

int nums = xxDao.countXxxxByXxx(params);

if ( nums 》 0 ) {

//當(dāng)存在時(shí),執(zhí)行這里的代碼

} else {

//當(dāng)不存在時(shí),執(zhí)行這里的代碼

}

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

優(yōu)化方案

推薦寫法如下:

SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1

##### Java寫法:

Integer exist = xxDao.existXxxxByXxx(params);

if ( exist != NULL ) {

//當(dāng)存在時(shí),執(zhí)行這里的代碼

} else {

//當(dāng)不存在時(shí),執(zhí)行這里的代碼

}

SQL不再使用count,而是改用LIMIT 1,讓數(shù)據(jù)庫(kù)查詢時(shí)遇到一條就返回,不要再繼續(xù)查找還有多少條了業(yè)務(wù)代碼中直接判斷是否非空即可

總結(jié)

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

編輯:jq

聲明:本文內(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)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    789

    瀏覽量

    45984

原文標(biāo)題:SQL 查找是否"存在",別再 count 了!

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    SQL 通用數(shù)據(jù)類型

    SQL 通用數(shù)據(jù)類型 數(shù)據(jù)庫(kù)表中的每個(gè)列都要求有名稱和數(shù)據(jù)類型。Each column in a database table is required to have a name and a
    的頭像 發(fā)表于 08-18 09:46 ?463次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server數(shù)據(jù)庫(kù)被加密,無(wú)法使用。 數(shù)據(jù)庫(kù)MDF、LDF、log日志文件名字被篡改。
    的頭像 發(fā)表于 06-25 13:54 ?390次閱讀
    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—<b class='flag-5'>SQL</b> Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解
    的頭像 發(fā)表于 06-17 15:12 ?2609次閱讀
    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理<b class='flag-5'>SQL</b>命令詳解

    如何一眼定位SQL的代碼來(lái)源:一款SQL染色標(biāo)記的簡(jiǎn)易MyBatis插件

    作者:京東物流 郭忠強(qiáng) 導(dǎo)語(yǔ) 本文分析了后端研發(fā)和運(yùn)維在日常工作中所面臨的線上SQL定位排查痛點(diǎn),基于姓名貼的靈感,設(shè)計(jì)和開發(fā)了一款SQL染色標(biāo)記的MyBatis插件。該插件輕量高效,對(duì)業(yè)務(wù)代碼無(wú)
    的頭像 發(fā)表于 03-05 11:36 ?638次閱讀
    如何一眼定位<b class='flag-5'>SQL</b>的代碼來(lái)源:一款<b class='flag-5'>SQL</b>染色標(biāo)記的簡(jiǎn)易MyBatis插件

    count_th_tl = ((u16)TH1 &lt;&lt; 8) + (u16)TL1;

    //void T1_RunTask(void) //{ // u32 count_th_tl = 0; // count_th_tl = ((u16)TH1 << 8
    發(fā)表于 02-01 11:51

    Devart: dbForge Compare Bundle for SQL Server—比較SQL數(shù)據(jù)庫(kù)最簡(jiǎn)單、最準(zhǔn)確的方法

    ? dbForge Compare Bundle For SQL Server:包含兩個(gè)工具,可幫助您節(jié)省用于手動(dòng)數(shù)據(jù)庫(kù)比較的 70% 的時(shí)間 dbForge數(shù)據(jù)比較 幫助檢測(cè)和分析實(shí)時(shí)SQL數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 01-17 11:35 ?748次閱讀

    dbForge Studio For SQL Server:用于有效開發(fā)的最佳SQL Server集成開發(fā)環(huán)境

    dbForge Studio For SQL Server:用于有效開發(fā)的最佳SQL Server集成開發(fā)環(huán)境 SQL編碼助手 SQL代碼分析 查詢分析器 可視化查詢生成器 數(shù)據(jù)和模式
    的頭像 發(fā)表于 01-16 10:36 ?930次閱讀

    Devart::dbForge SQL Complete讓生產(chǎn)力上一個(gè)臺(tái)階

    SQL編碼助手,適用于SSMS 和VS 該工具提供上下文感知的代碼補(bǔ)全,使SQL開發(fā)人員和數(shù)據(jù)庫(kù)管理員能夠更快地編寫代碼。 SQL Complet包含許多實(shí)用的功能,這些功能是專門為提高開發(fā)團(tuán)隊(duì)
    的頭像 發(fā)表于 01-14 11:09 ?854次閱讀
    Devart::dbForge <b class='flag-5'>SQL</b> Complete讓生產(chǎn)力上一個(gè)臺(tái)階

    通過Skyvia Connect SQL終端節(jié)點(diǎn)訪問任何數(shù)據(jù)

    通過 Skyvia Connect SQL 終端節(jié)點(diǎn)訪問任何數(shù)據(jù) ? 通過 Skyvia Connect SQL 終端節(jié)點(diǎn)訪問任何數(shù)據(jù)ADO.NET 數(shù)據(jù)網(wǎng)關(guān) 使用 Skyvia Connect
    的頭像 發(fā)表于 01-02 09:31 ?528次閱讀
    通過Skyvia Connect <b class='flag-5'>SQL</b>終端節(jié)點(diǎn)訪問任何數(shù)據(jù)

    淺談SQL優(yōu)化小技巧

    作者:京東零售 王軍 回顧:MySQL的執(zhí)行過程回顧 MySQL的執(zhí)行過程,幫助 介紹 如何進(jìn)行sql優(yōu)化。 (1)客戶端發(fā)送一條查詢語(yǔ)句到服務(wù)器; (2)服務(wù)器先查詢緩存,如果命中緩存,則立即返回
    的頭像 發(fā)表于 12-25 09:59 ?1040次閱讀

    verilog計(jì)數(shù)器代碼為什么要使用這句話if (count===8\'bxxxxxxxx)count=8\'b0000_0000;

    ; else if(count==8\'b1111_1111) count<=8\'b0000_0000; else count<=count+1; end endmodu
    發(fā)表于 12-21 14:49

    固定電話改用光纖可以嗎

    固定電話可以改用光纖。這種升級(jí)通常是由電信服務(wù)提供商進(jìn)行的,以適應(yīng)技術(shù)發(fā)展和市場(chǎng)需求。光纖作為一種更先進(jìn)的通信技術(shù),其推廣和應(yīng)用是電信行業(yè)技術(shù)升級(jí)的必然趨勢(shì)。以下是關(guān)于固定電話改用光纖的詳細(xì)解答
    的頭像 發(fā)表于 12-01 22:59 ?2091次閱讀

    SQL錯(cuò)誤代碼及解決方案

    SQL數(shù)據(jù)庫(kù)開發(fā)和管理中,常見的錯(cuò)誤代碼及其解決方案可以歸納如下: 一、語(yǔ)法錯(cuò)誤(Syntax Errors) 錯(cuò)誤代碼 :無(wú)特定代碼,但通常會(huì)在錯(cuò)誤消息中明確指出是語(yǔ)法錯(cuò)誤。 原因 :SQL語(yǔ)句
    的頭像 發(fā)表于 11-19 10:21 ?9641次閱讀

    常用SQL函數(shù)及其用法

    SQL 函數(shù)及其用法: 一、聚合函數(shù)(Aggregate Functions) 聚合函數(shù)對(duì)一組值執(zhí)行計(jì)算,并返回單個(gè)值。 COUNT() 用途 :返回匹配指定條件的行數(shù)。 示例 : SELECT
    的頭像 發(fā)表于 11-19 10:18 ?1968次閱讀

    SQL與NoSQL的區(qū)別

    在信息技術(shù)領(lǐng)域,數(shù)據(jù)庫(kù)是存儲(chǔ)和管理數(shù)據(jù)的核心組件。隨著互聯(lián)網(wǎng)的發(fā)展和大數(shù)據(jù)時(shí)代的到來(lái),對(duì)數(shù)據(jù)庫(kù)的需求也在不斷變化。SQL和NoSQL作為兩種主流的數(shù)據(jù)庫(kù)管理系統(tǒng),各自有著獨(dú)特的優(yōu)勢(shì)和應(yīng)用場(chǎng)
    的頭像 發(fā)表于 11-19 10:15 ?872次閱讀