mysql的儲存引擎

2021-10-04 20:37:56 字數 1905 閱讀 7398

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

儲存引擎這個概念似乎只有mysql有,儲存引擎不同,mysql呈現出來的特性也不同,適用場景就不同。其他資料庫,沒有聽說過有儲存引擎這個概念。但應該也有類似的機制。比如oracle、sql server都有oltp(聯機事務處理)、olap(聯機分析處理)兩種型別,分別適用於業務系統應用,資料倉儲,可在安裝時進行選擇。

mysql的儲存引擎種類繁多,五花八門。像oracle、sql server的型別是在安裝時候就要指定,之後不能再改。但mysql不同,它可以同時存在多種儲存引擎,這個錶用這種儲存引擎,那個錶用另一種,而且表的儲存引擎還可以修改,問你死未。由於儲存引擎涉及資料庫不同的儲存機制,表選擇不同的儲存引擎,可以得到不同的效果,如較高的效能,體現了靈活的一面。mysql確實是資料庫界的乙個異類,資料庫中的戰鬥雞。

mysql常用的儲存引擎有以下幾種:

1、innodb

mysql預設的儲存引擎。

最大特點是支援事務(難道支援事務不是資料庫的標配嗎?);支援外來鍵(我去,難道不是標配嗎?);它支援提交、回滾和緊急恢復功能來保護資料(竟無語凝噎)。它還支援行級鎖定。當在多使用者環境中使用時,它的「一致非鎖定讀取」提高了效能(就是共享鎖吧?)。它將資料儲存在集群索引中,從而減少了基於主鍵的查詢的i/o。

可見,選擇innodb,讓mysql看上去像乙個正常的資料庫。

使用myisam引擎建立資料庫,將產生3個檔案。檔案的名字以表名字開始,副檔名之處檔案型別:frm檔案儲存表定義、資料檔案的擴充套件名為.myd(mydata)、索引檔案的副檔名時.myi(myindex)

2、myisam

該儲存引擎管理非事務性表,提供高速儲存和檢索,支援全文搜尋。

myisam基於isam儲存引擎,並對其進行擴充套件。isam(indexed sequential access method,索引順序訪問方法)是2023年由bm提出的。類似多叉平衡樹,總之就是利於查詢。myisam是在web、資料倉儲和其他應用環境下最常使用的儲存引擎之一。myisam擁有較高的插入、查詢速度,但不支援事務。

看上去,innodb是mysql版的oltp,而myisam則是olap。

3、memory

mysql版的記憶體資料庫。執行前將資料載入到記憶體,那必定是極快的了。但好像極少聽說它,為啥大家不用它而搶著用redis呢?估計是它有比較多的限制,比如不支援變長字段,都是定長字段;對錶的大小也有要求,不能建立太大的表。突然斷電資料就會消失,可靠性不如redis;速度不夠redis快;使用比redis複雜;等等。

歸根到底可能還是四不像吧。

show engines
如果要想檢視資料庫預設使用哪個引擎,可以通過使用命令:

show variables like

'storage_engine'

;

檢視某個庫下所有表使用的儲存引擎

show

table

status

from 庫名;

檢視某個庫下指定表使用的儲存引擎

show

table

status

from 庫名 where name=

'表名';

mysql的儲存引擎有 mysql儲存引擎有哪些?

儲存引擎是資料庫管理系統用來從資料庫建立 讀取和更新資料的軟體模組。mysql中有兩種型別的儲存引擎 事務型和非事務型。對於mysql 5.5及更高版本,預設的儲存引擎是innodb。在5.5版本之前,mysql的預設儲存引擎是myisam。那麼mysql儲存引擎有哪些?一 innodb 這是mys...

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...

mysql個儲存引擎 MySQL儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...