mysql批量刪除大量數(shù)據(jù)
mysql批量刪除大量數(shù)據(jù)
假設(shè)有一個表(syslogs)有1000萬條記錄,需要在業(yè)務(wù)不停止的情況下刪除其中statusid=1的所有記錄,差不多有600萬條, 直接執(zhí)行 DELETE FROM syslogs WHERE statusid=1 會發(fā)現(xiàn)刪除失敗,因為lock wait timeout exceed的錯誤。
因為這條語句所涉及的記錄數(shù)太多,因此我們通過LIMIT參數(shù)分批刪除,比如每10000條進行一次刪除,那么我們可以利用
MySQL這樣的語句來完成:
DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000;
然后分多次執(zhí)行就可以把這些記錄成功刪除。
注:
執(zhí)行大批量刪除的時候注意要使用上limit。因為如果不用limit,刪除大量數(shù)據(jù)很有可能造成死鎖。
如果delete的where語句不在索引上,可以先找主鍵,然后根據(jù)主鍵刪除數(shù)據(jù)庫。
平時update和delete的時候最好也加上limit 1 來防止誤操作。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
MySQL?8.0.35數(shù)據(jù)庫下載安裝以及環(huán)境變量的配置方法
很多朋友剛開始接觸mysql數(shù)據(jù)庫服務(wù)器,這篇文章主要給大家介紹了關(guān)于MySQL?8.0.35數(shù)據(jù)庫下載安裝以及環(huán)境變量的配置方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-12-12MySQL觸發(fā)器基本用法詳解【創(chuàng)建、查看、刪除等】
這篇文章主要介紹了MySQL觸發(fā)器基本用法,結(jié)合實例形式分析了mysql觸發(fā)器的基本創(chuàng)建、查看、刪除等相關(guān)使用方法與注意事項,需要的朋友可以參考下2020-05-05MySQL 刪除數(shù)據(jù)庫中重復(fù)數(shù)據(jù)方法小結(jié)
在實際項目中,我們經(jīng)常會遇到刪除數(shù)據(jù)庫中重復(fù)數(shù)據(jù)的問題,貌似是很簡單的問題哈,下面我們來探討下2014-07-07MySQL數(shù)據(jù)庫中使用REPLACE函數(shù)示例及實際應(yīng)用
本文詳細介紹了MySQL中的REPLACE函數(shù),包括其基本語法、用法和實際應(yīng)用場景,REPLACE函數(shù)主要用于替換字符串中的某些子字符串,對大小寫敏感,文章還通過多個示例展示了REPLACE函數(shù)的實際應(yīng)用,需要的朋友可以參考下2024-10-10Lost connection to MySQL server during query的解決
經(jīng)常在執(zhí)行sql語句時,會發(fā)現(xiàn)這個問題,一般就是連接mysql數(shù)據(jù)庫不穩(wěn)定2008-06-06MySQL修改數(shù)據(jù)表存儲引擎的3種方法介紹
這篇文章主要介紹了MySQL修改數(shù)據(jù)表存儲引擎的3種方法介紹,分別是直接修改、導(dǎo)出導(dǎo)入、創(chuàng)建插入3種方法,需要的朋友可以參考下2014-07-07mysql實現(xiàn)if語句判斷功能的6種使用形式小結(jié)
這篇文章主要給大家介紹了關(guān)于mysql實現(xiàn)if語句判斷功能的6種使用形式,MySQL的IF既可以作為表達式用,也可在存儲過程中作為流程控制語句使用,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2023-07-07mysql創(chuàng)建觸發(fā)器時報1064錯誤問題及解決
這篇文章主要介紹了mysql創(chuàng)建觸發(fā)器時報1064錯誤問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08