MYSQL資料刪除資料,物理空間沒釋放

2022-09-16 00:42:09 字數 726 閱讀 3028

當您的庫中刪除了大量的資料後,您可能會發現資料檔案尺寸並沒有減小。這是因為刪除操作後在資料檔案中留下碎片所致。optimize table 是指對錶進行優化。如果已經刪除了表的一大部分資料,或者如果已經對含有可變長度行的表(含有 varchar 、 blob 或 text 列的表)進行了很多更改,就應該使用 optimize table 命令來進行表優化。這個命令可以將表中的空間碎片進行合併,並且可以消除由於刪除或者更新造成的空間浪費 。optimize table 命令只對 myisam 、 bdb 和 innodb 表起作用 。表優化的工作可以每週或者每月定期執行,對提高表的訪問效率有一定的好處,但是需要注意的是,優化表期間會鎖定表,所以一定要安排在空閒時段進行。

結合mysql官方**的資訊,個人是這樣理解的。當你刪除資料 時,mysql並不會**,被已刪除資料的佔據的儲存空間,以及索引位。而是空在那裡,而是等待新的資料來彌補這個空缺,這樣就有乙個缺少,如果一時半 會,沒有資料來填補這個空缺,那這樣就太浪費資源了。所以對於寫比較頻煩的表,要定期進行optimize,乙個月一次,看實際情況而定了。

舉個例子來說吧。有100個php程式設計師辭職了,但是呢只是人走了,php的職位還在那裡,這些職位不會撤銷,要等新的php程式來填補這些空位。招乙個好的程式設計師,比較難。我想大部分時間會空在那裡。哈哈。

參考:具體操作:開啟mysql命令列,輸入資料庫密碼,進入要操作的資料庫(命令列是:use databasename;),然後執行optimize table tablename;

MYSQL資料刪除資料,物理空間沒釋放

當您的庫中刪除了大量的資料後,您可能會發現資料檔案尺寸並沒有減小。這是因為刪除操作後在資料檔案中留下碎片所致。optimize table 是指對錶進行優化。如果已經刪除了表的一大部分資料,或者如果已經對含有可變長度行的表 含有 varchar blob 或 text 列的表 進行了很多更改,就應該...

MySQL刪除資料

mysql通過delete從表中刪除 去掉 資料。可以從表中刪除特定的行或者從表中刪除所有的行。下面語句是從customer表中刪除一行 delete from customers where cust id 10006 先檢視表customers在刪除前的成員 select cust id,cus...

MySQL 刪除資料

從資料表中刪除資料使用 delete 語句,delete 語句允許用 where 子句指定刪除條件。語法格式 delete from table name where table name 要執行刪除操作的表 where 為可選引數,用於指定刪除條件,如果沒有 where 子句,將刪除表中的所有記錄...