delete from table_name和delete from table_name where ...的結(jié)果不一樣,不帶條件的語句清空了表,myd文件大小為0;但是帶條件的刪除了整個表以后,myd和文件的大小不變。
究其原因:DELETE只是將數(shù)據(jù)標(biāo)識為刪除,并沒有整理數(shù)據(jù)文件,當(dāng)插入新數(shù)據(jù)后,會再次使用這些被置為刪除標(biāo)識的記錄空間。
解決辦法:
1.擴(kuò)充單表容量
先查看表的狀態(tài):show table status like 'table_name',然后修改表的容量:alter table_name max_rows=2000000000000,avg_low_length=500000。
2.釋放表空間
執(zhí)行 SHOW TABLE STATUS
返回的記錄中有一個 Date_free 字段.它顯示的是 MyISAM 的表浪費(fèi)空間.
對于 InnoDB 表, 在 Comment 字段中顯示
使用 OPTIMIZE TABLE 指令可以優(yōu)化它.
新聞熱點(diǎn)
疑難解答
圖片精選