91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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ā) ? 來源:今日頭條 ? 作者:程序猿囧途 ? 2021-07-26 10:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

根據(jù)某一條件從數(shù)據(jù)庫表中查詢 『有』與『沒有』,只有兩種狀態(tài),那為什么在寫SQL的時(shí)候,還要SELECT count(*) 呢?無論是剛?cè)氲赖?a href="http://www.makelele.cn/v/tag/1730/" target="_blank">程序員新星,還是精湛沙場多年的程序員老白,都是一如既往的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ù)庫查詢時(shí)遇到一條就返回,不要再繼續(xù)查找還有多少條了業(yè)務(wù)代碼中直接判斷是否非空即可

總結(jié)

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

編輯:jq

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

    關(guān)注

    1

    文章

    789

    瀏覽量

    46700

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    告別“完美同軸”執(zhí)念,MT6709離軸角度檢測解碼芯片:校準(zhǔn)補(bǔ)償、精準(zhǔn)檢測

    MT6709離軸角度檢測解碼芯片,自校準(zhǔn)補(bǔ)償偏差,告別傳統(tǒng)“同軸”執(zhí)念,可實(shí)現(xiàn)精準(zhǔn)的離軸0~360°角度檢測。
    的頭像 發(fā)表于 12-05 10:38 ?628次閱讀
    <b class='flag-5'>告別</b>“完美同軸”執(zhí)念,MT6709離軸角度檢測解碼芯片:校準(zhǔn)補(bǔ)償、精準(zhǔn)檢測

    使用NVIDIA Nemotron RAG和Microsoft SQL Server 2025構(gòu)建高性能AI應(yīng)用

    在 Microsoft Ignite 2025 大會(huì)上,隨著 Microsoft SQL Server 2025 的發(fā)布,AI 就緒型企業(yè)數(shù)據(jù)庫愿景成為現(xiàn)實(shí),為開發(fā)者提供強(qiáng)大的新工具,例如內(nèi)置向量
    的頭像 發(fā)表于 12-01 09:31 ?790次閱讀
    使用NVIDIA Nemotron RAG和Microsoft <b class='flag-5'>SQL</b> Server 2025構(gòu)建高性能AI應(yīng)用

    代購系統(tǒng) API 介紹

    1. 用戶相關(guān) API 用戶注冊 POST /api/users/register 參數(shù):username, email, password, phone 返回:user_id, token 用戶
    的頭像 發(fā)表于 10-08 09:21 ?305次閱讀

    數(shù)據(jù)庫慢查詢分析與SQL優(yōu)化實(shí)戰(zhàn)技巧

    今天,我將分享我在處理數(shù)千次數(shù)據(jù)庫性能問題中積累的實(shí)戰(zhàn)經(jīng)驗(yàn),幫助你系統(tǒng)掌握慢查詢分析與SQL優(yōu)化的核心技巧。無論你是剛?cè)腴T的運(yùn)維新手,還是有一定經(jīng)驗(yàn)的工程師,這篇文章都將為你提供實(shí)用的解決方案。
    的頭像 發(fā)表于 09-08 09:34 ?981次閱讀

    告別數(shù)月等待:數(shù)字孿生場景生成從此進(jìn)入“日級(jí)”時(shí)代

    告別數(shù)月等待:數(shù)字孿生場景生成從此進(jìn)入“日級(jí)”時(shí)代
    的頭像 發(fā)表于 09-05 17:33 ?2562次閱讀
    <b class='flag-5'>告別</b>數(shù)月等待:數(shù)字孿生場景生成從此進(jìn)入“日級(jí)”時(shí)代

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

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

    Text2SQL準(zhǔn)確率暴漲22.6%!3大維度全拆

    摘要 技術(shù)背景:Text2SQL 是將自然語言查詢轉(zhuǎn)為 SQL 的任務(wù),經(jīng)歷了基于規(guī)則、神經(jīng)網(wǎng)絡(luò)、預(yù)訓(xùn)練語言模型、大語言模型四個(gè)階段。當(dāng)前面臨提示優(yōu)化、模型訓(xùn)練、推理時(shí)增強(qiáng)三大難題,研究
    的頭像 發(fā)表于 08-14 11:17 ?703次閱讀
    Text2<b class='flag-5'>SQL</b>準(zhǔn)確率暴漲22.6%!3大維度全拆

    不用編程序無需聯(lián)外網(wǎng),將Rockwell羅克韋爾(AB)PLC的標(biāo)簽數(shù)據(jù)存入SQL數(shù)據(jù)庫

    \' 欄目的數(shù)值1SQL語句分組,相同的數(shù)值為同一個(gè)SQL語句命令。參數(shù)與自動(dòng)生成的SQL語句配置舉例 需要注意配置表‘?dāng)?shù)據(jù)地址’欄是PLC的數(shù)據(jù)標(biāo)簽,不能錯(cuò)誤,否則讀不到數(shù)據(jù),所以
    發(fā)表于 07-31 10:33

    兩個(gè)設(shè)備藍(lán)牙音頻改用一個(gè)怎么實(shí)現(xiàn)

    兩個(gè)設(shè)備藍(lán)牙音頻改用一個(gè)怎么實(shí)現(xiàn)
    發(fā)表于 07-22 09:28

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

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

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

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

    大促數(shù)據(jù)庫壓力激增,如何一眼定位 SQL 執(zhí)行來源?

    你是否曾經(jīng)遇到過這樣的情況:在大促活動(dòng)期間,用戶訪問量驟增,數(shù)據(jù)庫的壓力陡然加大,導(dǎo)致響應(yīng)變慢甚至服務(wù)中斷?更讓人頭疼的是,當(dāng)你試圖快速定位問題所在時(shí),卻發(fā)現(xiàn)難以確定究竟是哪個(gè)業(yè)務(wù)邏輯中的 SQL
    的頭像 發(fā)表于 06-10 11:32 ?565次閱讀
    大促數(shù)據(jù)庫壓力激增,如何一眼定位 <b class='flag-5'>SQL</b> 執(zhí)行來源?

    告別連接難題!MCX 插頭在通信設(shè)備中的實(shí)戰(zhàn)應(yīng)用

    日新月異的需求。在通信設(shè)備連接領(lǐng)域,德索精密工業(yè)的 MCX 插頭正以卓越表現(xiàn),助力行業(yè)發(fā)展,告別連接困擾 。
    的頭像 發(fā)表于 05-22 08:41 ?505次閱讀
    <b class='flag-5'>告別</b>連接難題!MCX 插頭在通信設(shè)備中的實(shí)戰(zhàn)應(yīng)用

    告別延遲!Ethernetip轉(zhuǎn)modbustcp網(wǎng)關(guān)在熔煉車間監(jiān)控的極速時(shí)代

    告別延遲!Ethernetip轉(zhuǎn)modbustcp網(wǎng)關(guān)在熔煉車間監(jiān)控的極速時(shí)代
    的頭像 發(fā)表于 05-20 19:20 ?418次閱讀
    <b class='flag-5'>告別</b>延遲!Ethernetip轉(zhuǎn)modbustcp網(wǎng)關(guān)在熔煉車間監(jiān)控的極速時(shí)代

    求助,關(guān)于Cypress FX3 VSYNC/HSYNC GPIFⅡ傳輸?shù)膯栴}求解

    WT_GPIF_CONFIG 1 #定義 WT_GPIF_ADDR_COUNT_LIMIT 34 #定義 WT_GPIF_DATA_COUNT_LIMIT 39 緩沖區(qū)大小 = 39904; dmaCfg.size
    發(fā)表于 05-13 06:17