參考閱讀:http://www.manongjc.com/article/1205.html
最近遇到一個修改 MySQL 表類型的問題,以前在 phpmyadmin 管理 mysql 數據庫時,建立的表默認是 MyISAM 類型,而且修改表類型也比較方便。奈何現在配置 phpmyadmin 出了問題,也懶得去弄了,就裝了另一個 mysql 的管理工具,比較方便。可是我新建的表默認確是 InnoDB 類型的,而且以前我遷移時,這個類型容易出問題,雖然說不出哪個類型好,但感覺更喜歡 MyISAM ,就嘗試把它轉為 MyISAM類型了。這個工具找了半天沒找著怎麼修改,問了水神同學也不知道。還好,在網上找著了 sql 命令修改句子,看來還是 sql 語句強大啊。
修改 mysql 表類型的 sql 語句:
alter table 表名 type = MyISAM;
alter table 表名 type = InnoDB;
附 mysql 表類型說明
MyISAM:這個是默認類型,它是基於傳統的ISAM類型,ISAM是Indexed Sequential Access Method (有索引的 順序訪問方法) 的縮寫,它是存儲記錄和文件的標准方法。與其他存儲引擎比較,MyISAM具有檢查和修復表格的大多數工具。 MyISAM表格可以被壓縮,而且它們支持全文搜索。它們不是事務安全的,而且也不支持外鍵。如果事物回滾將造成不完全回滾,不具有原子性。如果執行大量 的SELECT,MyISAM是更好的選擇。
InnoDB:這種類型是事務安全的。它與BDB類型具有相同的特性,它們還支持外鍵。InnoDB表格速度很快,具有比BDB還豐富的特性,因此如果需要一個事務安全的存儲引擎,建議使用它。如果你的數據執行大量的INSERT或UPDATE,出於性能方面的考慮,應該使用InnoDB表。
對於支持事物的InnoDB類型的標,影響速度的主要原因是AUTOCOMMI,默認設置是打開的,而且程序沒有顯式調用BEGIN 開始事務,導致每插入一條都自動Commit,嚴重影響了速度。可以在執行sql前調用begin,多條sql形成一個事物(即使autocommit打 開也可以),將大大提高性能。