mysql批量刪除大量數(shù)據(jù)
mysql批量刪除大量數(shù)據(jù)
假設(shè)有一個(gè)表(syslogs)有1000萬(wàn)條記錄,需要在業(yè)務(wù)不停止的情況下刪除其中statusid=1的所有記錄,差不多有600萬(wàn)條, 直接執(zhí)行 DELETE FROM syslogs WHERE statusid=1 會(huì)發(fā)現(xiàn)刪除失敗,因?yàn)閘ock wait timeout exceed的錯(cuò)誤。
因?yàn)檫@條語(yǔ)句所涉及的記錄數(shù)太多,因此我們通過(guò)LIMIT參數(shù)分批刪除,比如每10000條進(jìn)行一次刪除,那么我們可以利用
MySQL這樣的語(yǔ)句來(lái)完成:
DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000;
然后分多次執(zhí)行就可以把這些記錄成功刪除。
注:
執(zhí)行大批量刪除的時(shí)候注意要使用上limit。因?yàn)槿绻挥胠imit,刪除大量數(shù)據(jù)很有可能造成死鎖。
如果delete的where語(yǔ)句不在索引上,可以先找主鍵,然后根據(jù)主鍵刪除數(shù)據(jù)庫(kù)。
平時(shí)update和delete的時(shí)候最好也加上limit 1 來(lái)防止誤操作。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
mysql中url時(shí)區(qū)的陷阱該如何規(guī)避詳解
最近在工作中發(fā)現(xiàn)一個(gè)問(wèn)題,是關(guān)于mysql中url時(shí)區(qū)的,發(fā)現(xiàn)這個(gè)陷阱如果大家不注意可能都會(huì)遇到,所以給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于mysql中url時(shí)區(qū)的陷阱該如何規(guī)避的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08
MySQL遠(yuǎn)程無(wú)法連接的一些常見(jiàn)原因總結(jié)
有的小伙伴發(fā)現(xiàn)自己的mysql無(wú)法正常連接遠(yuǎn)程服務(wù)器,下面這篇文章主要給大家介紹了關(guān)于MySQL遠(yuǎn)程無(wú)法連接的一些常見(jiàn)原因,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
MySQL不使用order by實(shí)現(xiàn)排名的三種思路總結(jié)
ORDER BY語(yǔ)句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序,在日常開(kāi)發(fā)中也經(jīng)常會(huì)用到,但下面這篇文章主要給大家介紹了關(guān)于MySQL不使用order by實(shí)現(xiàn)排名的三種思路,需要的朋友可以參考下2021-06-06
將數(shù)據(jù)插入到MySQL表中的詳細(xì)教程
這篇文章主要介紹了將數(shù)據(jù)插入到MySQL表中的詳細(xì)教程,文中給出了在PHP腳本中操作的示例,是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
Docker啟動(dòng)mysql配置實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Docker啟動(dòng)mysql配置實(shí)現(xiàn)過(guò)程,文中附含詳細(xì)的圖文示例,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪2021-09-09
MySQL在Centos7環(huán)境安裝的完整步驟記錄
在CentOS7環(huán)境下安裝MySQL是一項(xiàng)常見(jiàn)的任務(wù),尤其對(duì)于那些沒(méi)有網(wǎng)絡(luò)連接或者需要在隔離環(huán)境中的開(kāi)發(fā)者來(lái)說(shuō),離線安裝MySQL顯得尤為重要,這篇文章主要介紹了MySQL在Centos7環(huán)境安裝的完整步驟,需要的朋友可以參考下2024-10-10
mysql read_buffer_size 設(shè)置多少合適
很多朋友都會(huì)問(wèn)mysql read_buffer_size 設(shè)置多少合適,其實(shí)這個(gè)都是根據(jù)自己的內(nèi)存大小等來(lái)設(shè)置的2016-05-05

