好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL 線上數據庫清理數據的方法

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

熱門標簽:html地圖標注并導航 武漢電銷機器人電話 400電話辦理服務價格最實惠 北京金倫外呼系統 呂梁外呼系統 400電話變更申請 催天下外呼系統 大豐地圖標注app 南太平洋地圖標注

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 結果分析

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

  1. 我們使用create table as的方法創建剩余的數據表,這種方法使我們僅對數據表中的少部分數據進行了操作。避免了我們對過多的數據進行掃描。
  2. 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導出數據遇到secure-file-priv問題的解決方法
  • MySQL 線上日志庫遷移實例
  • mysql創建表添加字段注釋的實現方法
  • MySQL 大表的count()優化實現
  • MySQL source命令的使用簡介
  • MySQL too many connections錯誤的原因及解決
  • 解決出現secure_file_priv null的問題

標簽:自貢 西寧 龍巖 麗水 南充 徐州 迪慶 無錫

巨人網絡通訊聲明:本文標題《MySQL 線上數據庫清理數據的方法》,本文關鍵詞  MySQL,線上,數據庫,清理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL 線上數據庫清理數據的方法》相關的同類信息!
  • 本頁收集關于MySQL 線上數據庫清理數據的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产伦精品一级二级三级妓女| 萝莉破处| 色情影片巜清宫艳史HD| 少妇婬荡呻吟久久久久久老妇| 草民电影网限制a午夜片| 免费看三级黄色片| 91精品国产欧美一区二区百度云| jiZZ大全高潮多水老师高产| 亚洲m码欧洲s码最新| 性生活黄色片| 丞相嗲嗲嗯啊h弄亲女| 影音先锋aV色婷婷96人妻影院| 极品少妇水晶辣椒自慰| 被男人吃奶摸下面啥感| 精品91自产拍在线观看一区| 今晚上叫你弄个够| 午夜一区二区三黑料吃瓜| 亚洲乱熟女一区二区三区山口理珠| 免费直接看黄| 成人免费看| 久久99国产精品成人欧美| 秋霞在线观看一区二区三区 | www.桃色| 揉我?啊?嗯~出水了h农村| 人妻激情综合久久久久| 欧美日韩一区二区三区视频播| 久久久久精品久久影院| 岬奈奈美一区中文字幕 | 美国私人vps一夜爽毛片免费| 别揉我胸啊嗯动态图| 毛片A片| a√任天堂资源中文8| 第一次处破女韩国电影| 免费看wwe的网站| 久久久久精品波多野结衣无码蜜桃| 免费无遮挡看黄H漫画下载| 亚洲另类电击调教在线观看 | 青楼调教给含紧点h| 在线视频欧美激情一区二区三区 | 国产免费爽爽视频免费可以看| 国产欧美久久久久久精品一区二区|