首頁  >  文章  >  資料庫  >  MySql引擎有哪些

MySql引擎有哪些

(*-*)浩
(*-*)浩原創
2019-05-07 14:18:4117505瀏覽

資料庫儲存引擎是資料庫底層軟體組織,資料庫管理系統(DBMS)使用資料引擎進行建立、查詢、更新和刪除資料。不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定等級等功能,使用不同的儲存引擎,還可以獲得特定的功能。

現在許多不同的資料庫管理系統都支援多種不同的資料引擎。 MySql的核心就是儲存引擎。

儲存引擎檢視

MySQL為開發者提供了查詢儲存引擎的功能,我這裡使用的是MySQL5.1 ,可以在命令列視窗使用:

SHOW ENGINES

指令來查看MySQL所使用的引擎,指令的輸出為(我使用的Navicat Premium):

MySql引擎有哪些

看到MySQL為使用者提供了這麼多儲存引擎,包括處理交易安全表的引擎和出來了非事物安全表的引擎。

如果要想查看資料庫預設使用哪個引擎,可以透過使用指令:

SHOW VARIABLES LIKE 'storage_engine';

來查看,查詢結果為:

MySql引擎有哪些

在MySQL中,不需要在整個伺服器中使用同一種儲存引擎,針對特定的要求,可以對每個表格使用不同的儲存引擎。 Support列的值表示某種引擎是否能使用:YES表示可以使用、NO表示不能使用、DEFAULT表示該引擎為目前預設的儲存引擎 。

下面來看看其中幾種常用的引擎。

一 、Innodb

支援事務,是事務安全的,提供行級鎖定與外鍵約束,有緩衝池,用於緩衝資料和索引。

適用場景:用於事務處理,具有ACID事物支持,應用於執行大量的insert和update操作的表。

二、MyISAM   

不支援事務,不支援外鍵約束,不支援行級鎖,操作時需要鎖定整張表,不過會儲存表的行數,所以執行select count(*) from tablename時執行特別快。

適用情境:用於管理非事務表,提供高速檢索及全文檢索能力,適用於有大量的select操作的表,如日誌表

三、MEMORY    

使用存在於記憶體中的內容建立表,每個memory只實際對應一個磁碟檔案。因為是存在記憶體中的,所以memory存取速度非常快,而且該引擎使用hash索引,可以一次定位,不需要像B樹一樣從根節點查找到支節點,所以精確查詢時存取速度特別快,但是非精確查找時,例如like,這種範圍查找,hash就起不到作用了。另外一旦服務關閉,表中的資料就會遺失,因為沒有存到磁碟。

適用場景:主要用於內容變更不頻繁的表,或作為中間的查找表。對錶的更新要謹慎因為資料沒有被寫入到磁碟中,服務關閉前要考慮好資料的儲存

四、MERGE

##MERGE儲存引擎把一組MyISAM資料表當做一個邏輯單元來對待,讓我們可以同時對他們進行查詢。構成一個MERGE資料表結構的各成員MyISAM資料表必須具有完全一樣的結構。每一個成員資料表的資料列必須按照相同的順序定義相同的名字和類型,索引也必須按照相同的順序和相同的方式定義。

除了方便同時引用多個資料表而無需發出多個查詢,MERGE資料表還提供了以下一些便利。

MERGE資料表可以用來建立一個尺寸超過各個MyISAM資料表所允許的最大長度邏輯單元

你看一把經過壓縮的資料表包含到MERGE資料表裡。比方說,在某一年結束之後,你應該不會再往相應的日誌檔裡添加記錄,所以你可以用myisampack工具壓縮它以節省空間,而MERGE數據表仍可以像往常那樣工作

以上是MySql引擎有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn