MYSQL切換表引擎

2021-08-19 11:12:13 字數 1008 閱讀 4200

1、檢視表狀態

show table status like 'corr_alert';

engine:引擎型別(舊版為type);

row_format:行的格式。可選值dynamic、fixed或compressed;

dynamic行長度可變,一般包含可變長度字段,varchar或bolb

fixed:長度固定

compressed:只在壓縮表中存在

collation:預設字符集和字元列排序規則;

checksum:如果啟用,儲存的整個表的實時校驗和;

comment:注釋或表空間剩餘資訊;檢視則為view文字字樣;

2、修改表引擎

目前有三種方式進行切換:

1)alter table語句:

alter table corr_alert_copy engine=innodb;

優點:高效,按行複製表記錄到新錶中

缺點:可能消耗系統所有i/o,原表加鎖

2)手工匯入與匯出

使用mysql自帶工具mysqldump匯出到檔案,修改檔案中的create table引擎語句,同時修改表名,且預設在create table前加上drop table語句

3)建立與查詢

create table corr_alert_copy like corr_alert;

alter table corr_alert_copy engine=innodb;

insert into corr_alert_copy select * from corr_alert;

資料量不大,工作很好;資料量大,分批處理,每一段資料乙個事務,避免大事務產生的undo操作;

start transaction

insert into corr_alert_copy select * from corr_alert where id between x and y;

commit;

優點:原表還在,可在執行過程中對原表加鎖,確保資料一致,操作簡單;

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

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

Mysql表引擎的切換

p.p1 p.p2 p.p3 將1個表的引擎修改為另乙個引擎最簡單的方法是使用alter table語句。下面的語句將mytable的引擎修改為innodb mysql alter table mytable engine innodb 上述語法適用於任何乙個引擎,但是有以下的缺點 a.執行時間上,...

mysql表切換引擎的幾種方法

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