欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 查詢指定分區,如何快速批量刪除Mysql數據庫中的數據表

江奕云2年前36瀏覽0評論
mysql 查詢指定分區,如何快速批量刪除Mysql數據庫中的數據表?

生產環境,往往需要更新/刪除大量的數據,由于很可能消耗太多的IO資源,對于生產繁忙的系統,需要小心,以避免對生產環境造成影響。刪除大量數據還有一些副作用,比如主從延時、數據文件無法收縮、鎖表等。 以下是一些要指引和規則:

1、批量刪除,這樣往往可以工作得更快,你可能需要在每次批量刪除前sleep一段時間,控制刪除的頻率,這樣的目的是減少對生產系統的IO沖擊,把符合平均分布,避免從庫滯后太多;

2、可以考慮分區表技術,我很少用分區表,但刪除一個分區,顯然比刪除大量數據簡單方便的多,這也是分區表清理/歸檔數據的優勢所在;

3、按照主鍵的序列分批分批,或者基于時間分批分批,你總可以找到一種方式批量刪除,如果實在沒有批量刪除的方式,可能你的表結構設計得不好;

4、基于硬件的性能,每批刪除的記錄數,可以選擇幾百到幾千到幾萬的數據量,但不要太大,MySQL很難同時處理好大事務和隨機小事務;

5、如果要刪除大部分數據,那么可以考慮的方式是,創建一個新表,insert要保留的數據,然后切換表;

6、對于大表(InnoDB)刪除大量數據,如果是一個很大的事務,中止刪除數據的操作,可能需要幾倍的時間用于回滾,導致嚴重的IO瓶頸,而批量刪除可以讓我們的回滾恢復得快得多。

7、需要留意空間的釋放,選擇獨立表空間會更有利于釋放空間。