亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL delete刪除數(shù)據(jù)后釋放磁盤空間的操作方法

 更新時(shí)間:2022年05月06日 16:55:58   作者:幸福丶如此  
這篇文章主要介紹了MySQL delete刪除數(shù)據(jù)后,釋放磁盤空間,文中給大家介紹了優(yōu)化表空間的多種方法,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下

當(dāng) MySQL 數(shù)據(jù)庫服務(wù)刪除部分?jǐn)?shù)據(jù)后;有些情況下這些數(shù)據(jù)占用的存儲空間會釋放掉,有些情況這些存儲空間則不會釋放。以下是對這種情況的簡單說明:

一、刪除表|清空數(shù)據(jù)表

當(dāng)執(zhí)行刪除數(shù)據(jù)表或者清空數(shù)據(jù)表的全部數(shù)據(jù)操作時(shí),都會釋放掉相應(yīng)的磁盤存儲空間。

drop table table_name;
truncate table table_name;

在MyISAM和InnoDB(innodb_file_per_table)存儲引擎中,數(shù)據(jù)信息存在在單個(gè)文件中。刪除表操作和清空數(shù)據(jù)表操作都會釋放空間。

二、刪除表數(shù)據(jù)

delete from table_name [where xxx];

使用delete刪除的時(shí)候,MySQL并沒有把數(shù)據(jù)文件刪除,而是將數(shù)據(jù)文件的標(biāo)識位刪除,沒有整理文件,因此不會徹底釋放空間。被刪除的數(shù)據(jù)將會被保存在一個(gè)鏈接清單中,當(dāng)有新數(shù)據(jù)寫入的時(shí)候,MySQL會利用這些已刪除的空間再寫入。即,刪除操作會帶來一些數(shù)據(jù)碎片,正是這些碎片在占用硬盤空間。

三、優(yōu)化表空間

方法一:

optimize table table_name ;

當(dāng)表數(shù)據(jù)被大量刪除后,釋放占用的空間就變得很有必要了。會明顯的提高查詢速度。使用 optimize table。被刪除的記錄被保持在鏈接清單中,后續(xù)的 insert 操作會重新使用舊的記錄位置。您可以使用 optimize table 來重新利用未使用的空間,并整理數(shù)據(jù)文件的碎片。optimize 適用于InnoDB和MyISAM存儲引擎。

查看表占用硬盤空間大小的SQL語句如下:(默認(rèn)用M做展示單位)

SELECT TABLE_NAME, (DATA_LENGTH+INDEX_LENGTH)/1048576 as size_Mb, TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA='wow_tencent_1' AND TABLE_NAME='user'

方法二:

alter table tab_name  ENGINE = 'InnoDB';

注意:該操作執(zhí)行的時(shí)候會把該表格先寫入一個(gè)tmp臨時(shí)表,所以磁盤剩余空間必須大于表空間,否則會執(zhí)行失敗。

方法三:
先將整個(gè)表的結(jié)構(gòu)和數(shù)據(jù)導(dǎo)出來,刪除整個(gè)表,再創(chuàng)建表,最后導(dǎo)入數(shù)據(jù)。生產(chǎn)環(huán)境不建議用這個(gè)方法。

到此這篇關(guān)于MySQL delete刪除數(shù)據(jù)后,釋放磁盤空間的文章就介紹到這了,更多相關(guān)MySQL delete釋放空間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論