国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

MySQL 線上數據庫清理數據的方法

瀏覽:12日期:2023-10-04 10:21:12
01 場景分析

今天下午,開發的同事提來一個需求,需要在線上要刪除一些數據記錄,簡單看了看數據的分布,大概是要刪除數據表中的兩千七百多萬條記錄,數據表的總記錄是兩千八百多萬,也就是說,要刪除的記錄占了總記錄的絕大部分比重,兩千七百多萬的數據記錄,要是刪除的話,使用的時間是相當長的,對線上的業務肯定會造成影響。這里將實際的應用案例簡單重構為以下方法:

mysql> select date,count(*) from test.tbl_a group by date;+----------+----------+| date | count(*) |+----------+----------+| | 63103 || 20190118 | || | 125916 || 20190120 | || | 129198 || 20190122 | || | 5191247 |+----------+----------+ rows in set (13.21 sec)

上面就是重構之后的表的結構,我們可以看到,test數據庫中的表tbl_b按照date分組之后,每個組的數據量都不小,而我們的需求是將date為20190118和20190123的記錄刪除,可以看到這兩種記錄總計有兩千多萬條,占了表中數據的絕大部分,如果直接刪除的話,線上的業務肯定會受到阻塞。

以下是操作方法,需要注意的是,應用下面的操作方法的前提是:

要刪除的數據占了數據表中的絕大部分。

02 操作辦法

通過分析,知道剩余的表數據對于全表來說是很小的一部分,這個操作我們分為4步:

1.我們先把剩余的數據存入到另外一個數據庫test1中:

create table test1.tbl_b_new as select * from test.tbl_b where date in(,,,,);

這個操作的時間只有3s左右;

2.我們在test1數據庫中創建一個同名的表tbl_b,它的結構和test數據庫中的tbl_b數據結構一致:

create table test1.tbl_b like test.tbl_b;

3.緊接著,我們使用數據庫中的rename操作將表test中的表tbl_b和test1中的表tbl_b進行交換,等價于將test數據庫中的表所有數據清除。

RENAME TABLE test.tbl_b TO test1.tbl_b_bak, test1.tbl_b TO test.tbl_b, test1.tbl_b_bak TO test1.tbl_b;

4.再講第一步保存的剩余數據填充到新表中來,如下:

insert into test.tbl_b select * from test1.tbl_b_new;03 結果分析

看上去我們好像把問題搞復雜了,直接刪除的事情,被我們搞的多了好幾個步驟,但是實際上不是這樣的,這一套操作可以幫我們節省好幾分鐘時間,對線上業務的影響也更小,原因如下:

我們使用create table as的方法創建剩余的數據表,這種方法使我們僅對數據表中的少部分數據進行了操作。避免了我們對過多的數據進行掃描。 mysql中對大表進行rename的操作,rename命令會直接修改底層的.frm文件,所以它的速度是相當之快的。

第二個特點給我們提供了一種思路,在一個很著急的業務中,要使用一個表的時候,往往不給我們留充足的時間備份表,如果我們想要刪除一個大表里面的數據,而且需要進行相關備份,我們可以通過rename操作迅速處理,然后再想辦法去備份rename之后的表。

上面的例子中使用create table as 和create table like兩種克隆表的方式,有幾點需要注意:

create table like方式會完整地克隆表結構,但不會插入數據,需要單獨使用insert into或load data方式加載數據create table as 方式會部分克隆表結構,完整保留數據

如果有興趣,可以做做試驗進行驗證。

以上就是MySQL 線上數據庫清理數據的方法的詳細內容,更多關于MySQL 線上數據庫清理數據的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 免费毛片全部不收费的 | 很黄的网站在线观看 | 国产在线观看一区 | 国产情侣久久 | 国产免费一区不卡在线 | 国产精品黄页在线播放免费 | 亚洲免费成人在线 | 手机在线观看一级午夜片 | 欧美一区精品二区三区 | 国产一区在线免费观看 | 亚洲乱人伦在线 | 国产黄色小视频在线观看 | 天堂在线www网亚洲 天堂在线视频网站 | 日本三级香港三级人妇99视 | 日本理论片午夜论片 | 成年18网站免费视频网站 | 亚洲伊人色综合网站亚洲伊人 | 亚洲精品99久久久久中文字幕 | 国产成人v爽在线免播放观看 | 亚洲精品高清国产一线久久97 | 综合亚洲精品一区二区三区 | 国产亚洲一区二区三区在线 | 日韩精品一区二区三区在线观看l | 一区二区三区免费高清视频 | 国内精品一区二区在线观看 | 久久九九久精品国产 | 久久久久成人精品一区二区 | 久久久久综合国产 | 成人在线免费视频 | 免费一区区三区四区 | 国产一区二区三区视频在线观看 | 韩国欧洲一级毛片免费 | 国产欧美va欧美va香蕉在线 | 国产一区二区三区在线看 | 国产免费久久精品99久久 | 神马我我不卡伦影视 | 黄色在线视频网 | 欧美一区二区三区视视频 | 欧美在线观看不卡 | 182福利视频| 久青草视频在线 |