Mysql是怎麼刪除資料的

2021-10-09 01:43:01 字數 1098 閱讀 5514

重建表optimze table/analyze table/alter table這三種方式重建表的區別

mysql>

show variables like

'innodb_file_per_table';+

-----------------------+-------+

| variable_name |

value|+

-----------------------+-------+

| innodb_file_per_table |on|

+-----------------------+-------+

1row

inset

(0.00 sec)

建議: 不論使用mysql的哪乙個版本,都將這個值設定成on,因為,乙個表單獨儲存為乙個檔案更容易管理,而且在你不需要這個表的時候,通過drop table命令,系統就會直接刪除這個檔案,而如果是在共享表中,即使表刪掉了,空間也是不會被**的

所以: innodb的資料是按頁儲存的,那麼如果我們刪掉了乙個資料頁上的所有記錄,會怎麼樣?

注意點:

資料頁空洞的問題:

另外,更新索引上的值,可以理解為刪除乙個舊的值,然後插入乙個新值,也就是說經過大量增刪改查的表都是可能存在空洞的,所以,如果能把這些空洞去掉,就能達到收縮表的目的

mysql>

alter

table t engine

=innodb

;

在mysql5.5之前,這個命令是用copy演算法

對於server層來說,沒有把資料挪動到臨時表,是乙個原地操作,這就是inplace名稱的**在複製過程中,會在server層建立乙個臨時表,把資料複製在臨時表中,而在innodb內部建立了tmp_file
mysql>

alter

table t engine

=innodb

,algorithm

=inplace;

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 子句,將刪除表中的所有記錄...

MYSQL刪除資料

884 535 qq.com 一 mysql 刪除表的幾種情況 1 drop table table name 刪除表全部資料和表結構,立刻釋放磁碟空間,不管是 innodb 和 myisam 例項,刪除學生表 drop table student 2 truncate table table na...