問題描述:
MySQL 數據表主要支持六種類型 ,分別是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。
這六種又分為兩類,一類是“事務安全型”(transaction-safe),包括BDB和InnoDB;其余都屬於第二類,稱為”非事務安全型”(non-transaction-safe)。
BDB 全稱是”Brekeley DB”,它是Mysql最早的具有事務能力的表的類型,由Sleepycat Software (http://www.sleepycat.com)開發。它提供了事務控制能力功能,它確保一組命令全部執行成功,或者當任何一個命令出現錯誤時所有命令的結果都被回退,可以想像在電子銀行中事務控制能力是非常重要的。支持COMMIT、ROLLBACK和其他事務特性。最新版本的Mysql已經計劃移除對BDB的支持,轉而全力發展InnoDB。
問題解決:
存儲引擎說白了就是如何存儲數據、如何為存儲的數據建立索引和如何更新、查詢數據等技術的實現方法。因為在關系數據庫中數據的存儲是以表的形式存儲的,所以存儲引擎也可以稱為表類型(即存儲和操作此表的類型)。
InnoDB 是較新的事務安全型存儲引擎,用於事務處理應用程序,支持BDB的幾乎所有特性,並具有眾多新特性,包括ACID事務支持。
特性:
事務處理機制
支持外鏈
崩潰後能立即恢復
支持外鍵功能,級聯刪除
支持並發能力
在硬盤上的存儲方式:InnoBDB frm
最新版本的Mysql已經計劃移除對BDB的支持,轉而全力發展InnoDB。InnoDB對Mysql有更好的特性支持,而且開發社區活躍。
MyISAM 默認的MySQL插件式存儲引擎,它是基於ISAM類型,但它增加了許多有用的擴展,它是在Web、數據倉儲和其他應用環境下最常使用的存儲引擎之一。注意,通過更改STORAGE_ENGINE配置變量,能夠方便地更改MySQL服務器的默認存儲引擎。
優點:
1.比ISAM表更小,所占資源更少
2.可以在不同平台間二進制移植表的類型在創建表時指定。
(1)查看數據庫可以支持的存儲引擎
命令:show engines;
注:如上圖所示,為顯示當前mysql支持的存儲引擎
從上圖看出,這裡使用的是mysql 5.5版本,默認使用的是InnoDB的數據庫引擎,為安全事務的引擎
(2)查看表結構
命令:desc table_name;
(3)顯示表的創建語句
注:
以上顯示了表的默認創建語句,從上面可以看出,mysql5.5默認情況下使用的是InnoDB的引擎,使用的編碼方式utf-8
(4)顯示表的當前狀態值
(5)修改數據庫表的引擎
注:mysql5.5默認情況下創建的數據表就是InnoDB,查看表的結構信息如上
修改表的數據庫引擎
修改之後,重新查看mysql的數據庫引擎