欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

drop table table_name;
truncate table table_name;

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

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

delete from table_name [where xxx];

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

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

方法一:

optimize table table_name ;

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

查看表占用硬盤(pán)空間大小的SQL語(yǔ)句如下:(默認(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í)候會(huì)把該表格先寫(xiě)入一個(gè)tmp臨時(shí)表,所以磁盤(pán)剩余空間必須大于表空間,否則會(huì)執(zhí)行失敗。

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

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

相關(guān)文章

最新評(píng)論