第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

怎樣實(shí)現(xiàn),一次查詢多個(gè)參數(shù),分別判斷是否都是唯一的

怎樣實(shí)現(xiàn),一次查詢多個(gè)參數(shù),分別判斷是否都是唯一的

慕運(yùn)維8079593 2019-01-19 14:09:03
1、實(shí)際需求:user表中,phone,username這兩個(gè)字段都是唯一的,不能重復(fù)。批量插入之前需要分別判斷這兩個(gè)字段在數(shù)據(jù)庫(kù)中是否已經(jīng)存在。2、當(dāng)前解決方案:使用or來(lái)實(shí)現(xiàn) SELECT COUNT(*) FROM USER WHERE phone = #{phone} OR username = #{username} 3、問(wèn)題:但是因?yàn)閿?shù)據(jù)量比較大,效率很低,請(qǐng)問(wèn)有什么更合適的解決方案,提供思路即可,謝謝。
查看完整描述

8 回答

?
開(kāi)滿天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

數(shù)據(jù)量很大可以考慮分表。

優(yōu)化方案,可以考慮分兩次查詢,第一個(gè)不重復(fù)才去檢查另一個(gè),同時(shí)給這兩個(gè)字段加索引。

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

1、兩個(gè)字段都有單獨(dú)的唯一索引用union all查詢判斷結(jié)果不會(huì)慢的
2、利用mysql唯一索引的沖突異常,應(yīng)用捕獲異常也可以

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

我今天下午用mysql+navicat試了一下,100w條數(shù)據(jù),
總共6組結(jié)果
1、無(wú)索引,union,平均0.7s
2、無(wú)索引,or,平均0.4s
3、兩個(gè)唯一性索引,union,平均0.1s
4、兩個(gè)唯一性索引,or,平均0.08
5、一個(gè)聯(lián)合索引,union,平均0.4s
6、一個(gè)聯(lián)合索引,or,平均0.4s

SELECT
    COUNT(*)
FROM
    (
        SELECT
            *
        FROM
            USER
        WHERE
            phone = "496066"
        UNION
            SELECT
                *
            FROM
                USER
            WHERE
                username = '888888'
    ) aa;


SELECT
    COUNT(*)
FROM
    USER
WHERE
    phone = '496066'
OR username = '888888';
查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

其實(shí)沒(méi)必要count, limit 1就好,有則立即放回,沒(méi)有第一個(gè)條件再查下一個(gè)

查看完整回答
反對(duì) 回復(fù) 2019-03-01
  • 8 回答
  • 0 關(guān)注
  • 926 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)