萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL正確的myisam轉innodb的方法

MySQL正確的myisam轉innodb的方法

myisam轉innodb就是要修改表的存儲引擎了這個如果不按標准方法來修改myisam轉innodb那麼可能導致數據庫損壞及數據丟失問題了,下面我們來看正確的myisam轉innodb方法。


這裡簡單的介紹一下兩者間的區別和轉換方法:

MyISAM:MyISAM是MySQL5.5之前版本默認的數據庫存儲引擎。MYISAM提供高速存儲和檢索,以及全文搜索能力,適合數據倉庫等查詢頻繁的應用。但不支持事務、也不支持外鍵。MyISAM格式的一個重要缺陷就是不能在表損壞後恢復數據。

InnoDB:InnoDB是MySQL5.5版本的默認數據庫存儲引擎,不過InnoDB已被Oracle收購,MySQL自行開發的新存儲引擎Falcon將在MySQL6.0版本引進。InnoDB具有提交、回滾和崩潰恢復能力的事務安全。但是比起MyISAM存儲引擎,InnoDB寫的處理效率差一些並且會占用更多的磁盤空間以保留數據和索引。盡管如此,但是InnoDB包括了對事務處理和外來鍵的支持,這兩點都是MyISAM引擎所沒有的。

MyISAM適合:(1)做很多count 的計算;(2)插入不頻繁,查詢非常頻繁;(3)沒有事務。
InnoDB適合:(1)可靠性要求比較高,或者要求事務;(2)表更新和查詢都相當的頻繁,並且表鎖定的機會比較大的情況。(4)性能較好的服務器,比如單獨的數據庫服務器,像阿裡雲的關系型數據庫RDS就推薦使用InnoDB引擎。

MySQL一般提供多種存儲引擎,可以通過執行以下指令查看:

首先進入MySQL命令行模式

查看MySQL提供什麼存儲引擎:
mysql> show engines;

查看MySQL當前默認的存儲引擎:
mysql> show variables like '%storage_engine%';

查詢wpsql庫
mysql> use wpsql;

列出當前庫所有表名
mysql> show tables;

你要看wp_posts表用了什麼引擎(在顯示結果裡參數engine後面的就表示該表當前用的存儲引擎):
mysql> show create table wp_posts;

將wp_posts表修為InnoDB存儲引擎(也可以此命令將InnoDB換為MyISAM):
mysql> ALTER TABLE wp_posts ENGINE=INNODB;
如果要更改整個數據庫表的存儲引擎,一般要一個表一個表的修改,比較繁瑣,可以采用先把數據庫導出,得到SQL,把MyISAM全部替換為INNODB,再導入數據庫的方式。

轉換完畢後重啟mysql
> service mysqld restart

copyright © 萬盛學電腦網 all rights reserved