欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

mysql中delete后加limit好不好

這篇文章主要介紹MySQL中delete后加limit好不好,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

為南江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及南江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、網(wǎng)站設(shè)計、南江網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

在業(yè)務(wù)場景要求高的數(shù)據(jù)庫中,對于單條刪除和更新操作,在 delete 和 update 后面加 limit 1 絕對是個好習(xí)慣。比如,在刪除執(zhí)行中,第一條就命中了刪除行,如果 SQL 中有 limit 1;這時就 return 了,否則還會執(zhí)行完全表掃描才 return。效率不言而喻。

那么,在日常執(zhí)行 delete 時,我們是否需要養(yǎng)成加 limit 的習(xí)慣呢?是不是一個好習(xí)慣呢?

在日常的 SQL 編寫中,你寫 delete 語句時是否用到過以下 SQL?

delete from t where sex = 1 limit 100; 
 

你或許沒有用過,在一般場景下,我們對 delete 后是否需要加 limit 的問題很陌生,也不知有多大區(qū)別!

下面只討論 delete 場景,首先,delete 后面是支持 limit 關(guān)鍵字的,但僅支持單個參數(shù),也就是 [limit row_count],用于告知服務(wù)器在控制命令被返回到客戶端前被刪除的行的最大值。

delete limit 語法如下,值得注意的是,order by 必須要和 limit 聯(lián)用,否則就會被優(yōu)化掉。

delete \[low\_priority\] \[quick\] \[ignore\] from tbl\_name
  \[where ...\]
    \[order by ...\]
      \[limit row\_count\]
   

加 limit 的的優(yōu)點:

「以下面的這條 SQL 為例:」

delete from t where sex = 1; 
   
 
  • 1. 降低寫錯 SQL 的代價,就算刪錯了,比如 limit 500, 那也就丟了 500 條數(shù)據(jù),并不致命,通過 binlog 也可以很快恢復(fù)數(shù)據(jù)。
  • 2. 避免了長事務(wù),delete 執(zhí)行時 MySQL 會將所有涉及的行加寫鎖和 Gap 鎖(間隙鎖),所有 DML 語句執(zhí)行相關(guān)行會被鎖住,如果刪除數(shù)量大,會直接影響相關(guān)業(yè)務(wù)無法使用。
  • 3. delete 數(shù)據(jù)量大時,不加 limit 容易把 cpu 打滿,導(dǎo)致越刪越慢。

針對上述第二點,前提是 sex 上加了索引,大家都知道,「加鎖都是基于索引的,如果 sex 字段沒索引,就會掃描到主鍵索引上,那么就算 sex = 1 的只有一條記錄,也會鎖表?!?/strong>

「對于 delete limit 的使用,MySQL 大佬丁奇有一道題:」

?  

如果你要刪除一個表里面的前 10000 行數(shù)據(jù),有以下三種方法可以做到:第一種,直接執(zhí)行 delete from T limit 10000; 第二種,在一個連接中循環(huán)執(zhí)行 20 次 delete from T limit 500; 第三種,在 20 個連接中同時執(zhí)行 delete from T limit 500。

?  

你先考慮一下,再看看幾位老鐵的回答:

「Tony Du:」

  • 方案一,事務(wù)相對較長,則占用鎖的時間較長,會導(dǎo)致其他客戶端等待資源時間較長。
  • 方案二,串行化執(zhí)行,將相對長的事務(wù)分成多次相對短的事務(wù),則每次事務(wù)占用鎖的時間相對較短,其他客戶端在等待相應(yīng)資源的時間也較短。這樣的操作,同時也意味著將資源分片使用(每次執(zhí)行使用不同片段的資源),可以提高并發(fā)性。
  • 方案三,人為自己制造鎖競爭,加劇并發(fā)量。
  • 方案二相對比較好,具體還要結(jié)合實際業(yè)務(wù)場景。

「肉山:」

不考慮數(shù)據(jù)表的訪問并發(fā)量,單純從這個三個方案來對比的話。

  • 第一個方案,一次占用的鎖時間較長,可能會導(dǎo)致其他客戶端一直在等待資源。
  • 第二個方案,分成多次占用鎖,串行執(zhí)行,不占有鎖的間隙其他客戶端可以工作,類似于現(xiàn)在多任務(wù)操作系統(tǒng)的時間分片調(diào)度,大家分片使用資源,不直接影響使用。
  • 第三個方案,自己制造了鎖競爭,加劇并發(fā)。

至于選哪一種方案要結(jié)合實際場景,綜合考慮各個因素吧,比如表的大小,并發(fā)量,業(yè)務(wù)對此表的依賴程度等。

「~嗡嗡:」

  • 1. 直接 delete 10000 可能使得執(zhí)行事務(wù)時間過長

  • 2. 效率慢點每次循環(huán)都是新的短事務(wù),并且不會鎖同一條記錄,重復(fù)執(zhí)行 DELETE 知道影響行為 0 即可

  • 3. 效率雖高,但容易鎖住同一條記錄,發(fā)生死鎖的可能性比較高

怎么刪除表的前 10000 行。比較多的朋友都選擇了第二種方式,即:在一個連接中循環(huán)執(zhí)行 20 次 delete from T limit 500。確實是這樣的,第二種方式是相對較好的。

第一種方式(即:直接執(zhí)行 delete from T limit 10000)里面,單個語句占用時間長,鎖的時間也比較長;而且大事務(wù)還會導(dǎo)致主從延遲。

第三種方式(即:在 20 個連接中同時執(zhí)行 delete from T limit 500),會人為造成鎖沖突。

這個例子對我們實踐的指導(dǎo)意義就是,在刪除數(shù)據(jù)的時候盡量加 limit。這樣不僅可以控制刪除數(shù)據(jù)的條數(shù),讓操作更安全,還可以減小加鎖的范圍。所以,在 delete 后加 limit 是個值得養(yǎng)成的好習(xí)慣。

以上是“mysql中delete后加limit好不好”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁名稱:mysql中delete后加limit好不好
分享路徑:http://aaarwkj.com/article24/igsgje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航定制開發(fā)、做網(wǎng)站、企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

精品一区二区日韩在线| 国产我和子的乱视频亲生| 国产成人亚洲精品乱码| 激情国产白嫩美女在线观看| 国产男女爱猛视频在线| 国产av爆操黑丝美女| 清纯美女爱爱高潮av| 久久久久亚洲av成人| 男女啪啪国产精品视频| 国产精品蜜臀av在线一区| 中文字幕在线日韩精品| 精品毛片在线播放网站不卡| 久久成人a毛片免费观看网站| 日韩高清在线不卡视频| 欧美国产激情一区二区| 日韩视频在线不卡观看| 亚洲大片色一区在线观看| 国产传媒在线免费播放视频| 亚洲二区中文字幕在线观看| 日本午夜一区二区在线观看| 野花日本免费高清完整| 日韩欧美国产精品自拍| 亚洲精品综合在线二区| 成人短篇在线视频夫妻刺激自拍| 高潮国产精品一区二区| 国产色视频一区在线观看| 欧美日韩一区二区黄色| 国产av剧情同事肉体秘密| 日本黄色小网站在线播放| 亚洲国产成人精品福利| 男女做爰高清免费视频| 成人黄性视频免费网看| 欧美特黄高清在线观看| 国产真实乱偷精品视频免| 国产一级无码免费视频| 91久久国产香蕉熟女| 99热只有这里才有精品| 国内精品亚洲成av人片麻豆| 国产成人精品一二三四区| 久久91亚洲精品久久91| 在线观看不卡的黄色地址|