Mysql表引擎的切換

2022-08-27 06:30:13 字數 947 閱讀 4454

p.p1

p.p2

p.p3 將1個表的引擎修改為另乙個引擎最簡單的方法是使用alter table語句。

下面的語句將mytable的引擎修改為innodb

mysql>alter table mytable engine = innodb;

上述語法適用於任何乙個引擎,但是有以下的缺點:

a.執行時間上,將資料從原表複製乙份到新錶中,消耗系統的i/o能力

b.原表會加上讀鎖,繁忙表上要特別注意

c.將失去和原引擎相關的所有特性,如原表的外來鍵

可以使用mysqldump工具將資料匯出到檔案,然後修改檔案中的create table 語句的儲存引擎選擇,注意要修改表名,即使使用不同的引擎。

注意:mysql匯出的sql語句缺省會帶有drop table,不注意這一點會造成資料的丟失

結合第一種方法的高效和第二種方法的安全。不需要匯出整個表的資料,只需要先建立乙個新的儲存引擎的表,然後利用insert....select語法來導資料

mysql >create table innodb_table like myisam_table;

mysql >alter table innodb_table engine=innodb;

mysql >insert into innodb_table select * from myisam_table;

如果資料量很大,可以考慮分批處理

mysql>stsrt transaction

mysql> insert into innodb_table select * from myisam_table where

id between x and y;

mysql> commit;

新錶是原表的全量複製。如果有必要,可以在執行過程中對原表加鎖,保證新錶和原表資料一致。

mysql切換到表 mysql表切換引擎的幾種方法

alter table mysql alter table mytable engine falcon 這種語法適合所有引擎,但是轉換過程會耗費大量時間。mysql為此要執行乙個舊表到新錶的逐行複製。在這期間,轉換操作可能會占用伺服器的所有i o處理能力,並且在轉換時,源表要被讀加鎖。因此,在乙個繁...

MYSQL切換表引擎

1 檢視表狀態 show table status like corr alert engine 引擎型別 舊版為type row format 行的格式。可選值dynamic fixed或compressed dynamic行長度可變,一般包含可變長度字段,varchar或bolb fixed 長...

mysql表切換引擎的幾種方法

alter table mysql alter table mytable engine falcon 這種語法適合所有引擎,但是轉換過程會耗費大量時間。mysql為此要執行乙個舊表到新錶的逐行複製。在這期間,轉換操作可能會占用伺服器的所有i o處理能力,並且在轉換時,源表要被讀加鎖。因此,在乙個繁...