91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL大表清空和刪除正確方法

發布時間:2020-09-26 15:16:27 來源:網絡 閱讀:2052 作者:898009427 欄目:MySQL數據庫

MySQL大表清空和刪除正確方法

1 清空大表

1.1 truncate

刪除表中的數據的方法有delete,truncate, 其中TRUNCATE TABLE用于刪除表中的所有行,而不記錄單個行刪除操作。TRUNCATE TABLE 與沒有 WHERE 子句的 DELETE 語句類似;但是,TRUNCATE TABLE 速度更快,使用的系統資源和事務日志資源更少。

truncate 清空表數據,50G的表大概需要20秒以上;

mysql> truncate table old_table;

1.2 rename

1.2.1 格式:

mysql> rename table 原表名 to 新表名;

當你執行 RENAME 時,你不能有任何鎖定的表或活動的事務。你同樣也必須有對原初表的 ALTER 和 DROP 權限,以及對新表的 CREATE 和 INSERT 權限。

1.2.2 實例

# 新建一個空表(測試);
mysql> create table old_table(id int);

# new_table克隆old_table的表結構;
mysql> create table new_table like old_table;

# old_table改名為backup_table,new_table改名為old_table;
mysql> RENAME TABLE old_table TO backup_table, new_table TO old_table;

# 刪除舊表及數據;
mysql> DROP TABLE old_table;    

2 刪除

2.1 背景

在生產環境有可能有刪除某個不重要大表的需求,因為大表占用的大量磁盤空間,如果我們直接drop掉此表,通常需要20秒以上的時間,總會覺得會卡主MySQL,現在給大家一個正確的刪除方法。

2.2 首先我們查看此大表

# shell
[root@ras221 db]# du -shc old_table*
12K old_table.frm
49G old_table.ibd
[root@ras221 db]# ls -l old_table*
-rw-r----- 1 mysql mysql      9075 11月  8 11:39 old_table.frm
-rw-r----- 1 mysql mysql 52273610752 1月  10 14:12 old_table.ibd
[root@ras221 db]# ln old_table.ibd old_table.ibd.bak        # 硬鏈接;
[root@ras221 db]# ls -l old_table*
-rw-r----- 1 mysql mysql      9075 11月  8 11:39 old_table.frm
-rw-r----- 1 mysql mysql 52273610752 1月  10 14:12 old_table.ibd
-rw-r----- 1 mysql mysql 52273610752 1月  10 14:12 old_table.ibd.bak
[root@ras221 db]# 

# mysql 
mysql> drop table old_table;
Query Ok, 0 rows affacted(0.92 sec)

通過這樣的操作,可以減少mysql drop大表hang住的時間,然后在業務低峰期再去刪除真實的那個.b文.bak件。

至于原理:
就是利用OS HARD LINK的原理,
當多個文件名同時指向同一個INODE時,這個INODE的引用數N>1, 刪除其中任何一個文件名都會很快.
因為其直接的物理文件塊沒有被刪除.只是刪除了一個指針而已;
當INODE的引用數N=1時, 刪除文件需要去把這個文件相關的所有數據塊清除,所以會比較耗時;

對于大表操作操作的其實幾個Tips:
可以先用rename table替代drop table
mysql> rename table old_table to old_table_bak;
這個動作也很快只是相當于改一個文件名。
另外也可以考慮使用XFS文件系統,對于Drop表動作也比較快。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙江县| 苍溪县| 牟定县| 安宁市| 澄江县| 永丰县| 葫芦岛市| 丘北县| 诸城市| 上饶市| 尼玛县| 车险| 巩义市| 全州县| 新竹县| 福建省| 岳阳市| 宁南县| 鲁甸县| 从江县| 衡山县| 常宁市| 绩溪县| 宝清县| 峨山| 博客| 浪卡子县| 泸州市| 新乡县| 象山县| 宁晋县| 杭锦旗| 合水县| 滕州市| 伊金霍洛旗| 桐梓县| 扶余县| 赫章县| 读书| 固始县| 瓮安县|