1. 程式人生 > >MySQL資料庫中的儲存引擎

MySQL資料庫中的儲存引擎

與其他資料庫軟體不同,MySQL資料庫提供了一種名為儲存引擎的概念。儲存引擎是MySQL資料庫管理系統的一個重要特徵,在具體開發中,為了提高MySQL資料庫管理系統的使用效率和靈活性,可以根據實際情況來選擇儲存引擎。簡單的說資料庫是用一張張表來儲存資訊的,那麼必然就會存在有的表簡單,有的表複雜,有的表讀取速度比較快但插入資料比較慢。因為在儲存引擎指定了表的型別,即如何儲存和索引資料、是否支援事務等,同時也決定了表在計算機中的儲存方式。那麼接下來我們來看看MySQL資料庫中有哪些儲存引擎:
show engines;
show engines \g
show engines \G   //這種方式比較友好

這裡寫圖片描述這裡寫圖片描述
MySQL資料庫支援9種儲存引擎(不同版本有所不同)。Engine表示儲存引擎名稱;Support表示MySQL資料庫管理系統是否支援該儲存引擎,default預設支援的儲存引擎;Comment關於儲存引擎的評論;Transactions是否支援事務;XA儲存引擎所支援的分散式是否符合XA規範;Savepoints是否支援事務處理中的儲存點。
這裡寫圖片描述

使用show create table t_user;可以檢視建立表的儲存引擎

這裡寫圖片描述

使用show table status like 't_user' \G 顯示當前表的資訊

設定表的儲存引擎

     假設要建立一個名為user的表,此表包括id,使用者名稱username和性別sex三個欄位,並且要設定表型別為merge。則可用如下的方式建立此資料表,
create table user(
  id int not null auto_increment,
  username char(20) not null,
  sex char(2),
  primary key(id)
) engine=merge
*** 修改儲存引擎,可以用命令Alter table tableName engine =engineName;

選擇儲存引擎

介紹三種儲存引擎的應用場合和使用建議。
*MyISAM儲存引擎:由於該儲存引擎不支援事務、也不支援外來鍵,所以訪問速度比較快。因為對事務完整性沒有要求並以訪問為主的應用場合適用。
*InnoDB儲存引擎:由於該儲存引擎在事務上有所優勢,即支援具有提交、回滾和崩潰恢復的能力的事務安裝,所以比MyISAM儲存引擎佔用更多的磁碟空間。因此需要進行頻繁的更新、刪除操作,同時還對事務的完整性要求比較高,需要實現併發控制,此時適合使用。
*MEMORY儲存引擎:該儲存引擎使用記憶體來儲存資料,因此該儲存引擎的資料訪問速度快。但安全上沒有保障。如果應用中設計資料比較小,需要進行快速訪問,則適合使用。