標籤:style ar 使用 sp on 檔案 資料 bs ef
MySQL有多種儲存引擎,MyISAM和InnoDB是其中常用的兩種。這裡介紹關於這兩種引擎的一些基本概念(非深入介紹)。
MyISAM基於傳統的ISAM類型,支援全文檢索搜尋,但不是事務安全的,而且不支援外鍵。每張MyISAM表存放在三個檔案中:frm 檔案存放表格定義;資料檔案是MYD (MYData);索引檔案是MYI (MYIndex)。
InnoDB(預設)是事務型引擎,支援復原、崩潰恢複能力、多版本並發控制、ACID事務,支援行級鎖定(InnoDB表的行鎖不是絕對的,如果在執行一 個SQL語句時MySQL不能確定要掃描的範圍,InnoDB表同樣會鎖全表,如like操作時的SQL語句),以及提供與Oracle類型一致的不加鎖 讀取方式。InnoDB儲存它的表和索引在一個資料表空間中,資料表空間可以包含數個檔案。
主要區別:
MyISAM是非事務安全型的,而InnoDB是事務安全型的。
MyISAM鎖的粒度是表級,而InnoDB支援行級鎖定。
MyISAM支援全文類型索引,而InnoDB不支援全文索引。
MyISAM相對簡單,所以在效率上要優於InnoDB,小型應用可以考慮使用MyISAM。
MyISAM表是儲存成檔案的形式,在跨平台的資料轉移中使用MyISAM儲存會省去不少的麻煩。
InnoDB表比MyISAM表更安全,可以在保證資料不會丟失的情況下,切換非事務表到事務表(alter table tablename type=innodb)。
應用情境:
常用命令:
(1)查看錶的儲存類型(三種):
show create table tablename
show table status from dbname where name=tablename
mysqlshow -u user -p password --status dbname tablename
(2)修改表的儲存引擎:
(3)啟動mysql資料庫的命令列中添加以下參數使新發布的表都預設使用事務:
(4)臨時改變預設表類型:
mysql 儲存引擎