刪除表的幾種方式
建立乙個資料庫為 mybatis,表為user,插入幾條資料:
drop table user; (直接刪除表資訊,最快)
truncate table user;(刪除表資料,不刪除表的結構,速度排第二)
delete from user where 1=1;(根據條件刪除資料,不刪除表結構,速度慢,一條一條刪除)
第四種比較麻煩以下是第四種的介紹
檢視information_schema.tables表得到:
現在進入到 /usr/local/mysql/data/mybatis/ 可以看到兩個檔案,user.ibd和user.ifm,ibd記錄資料,ifm記錄表字段(這裡是檢視這兩個檔案後的猜測,不知道對不對 —> __—>)
mv user.ibd user.ibd.bak 重啟mysql再次檢視這個表變為以下資訊
將user.ifm 改為 user.ifm.bak 重啟mysql此時再次檢視就沒有這條資訊了。
更改回原名字,再次重啟,可看到又恢復了
所以第四種就是直接修改檔案,只修改user.ibd只是把資料更改了,這時mysql啟動會載入user.ifm 和user.ibd,但ibd檔案找不到所以會出現上述情況,如果把ifm檔案也更改,此時重啟的時候都找不到就不載入了,就等於刪除了
缺點:這種方式需要重啟伺服器所以比較麻煩(且不可再建立相同名字的表,哪怕是修改表結構也不行,因為表空間還存在,除非新建乙個資料庫並建立乙個同名表在將這個表的檔案拷貝到對應的檔案下,在執行drop table 表名(此時原檔案便不可在用),這樣就可重新建立了)
優點:資料不是真正的刪除,如果想要恢復只需把檔名都更改為原來的名字就可
幾種刪除表空間的方式
刪除空的表空間,但是不包含物理檔案 drop tablespace tablespace name 刪除非空表空間,但是不包含物理檔案 drop tablespace tablespace name including contents 刪除空表空間,包含物理檔案 drop tablespace t...
mysql拷貝表的幾種方式
mysql拷貝表操作我們會常常用到,下面就為您詳細介紹幾種mysql拷貝表的方式,希望對您學習mysql拷貝表方面能夠有所幫助。假如我們有以下這樣乙個表 id username password 1 admin 2 sameer 3 stewart create table if not exist...
mysql拷貝表的幾種方式
mysql拷貝表操作我們會常常用到,下面就為您詳細介紹幾種mysql拷貝表的方式,希望對您學習mysql拷貝表方面能夠有所幫助。假如我們有以下這樣乙個表 id username password 1 admin 2 sameer 3 stewart create table if not exist...