1、innodb儲存引擎
innodb是事務型資料庫的首選引擎,支援事務安全表(acid),其它儲存引擎都
是非事務安全表,支援行鎖定和外來鍵,mysql5.5以後預設使用innodb儲存引擎。
innodb特點:支援事務處理,支援外來鍵,支援崩潰修復能力和併發控制。如果需
要對事務的完整性要求比較高(比如銀行),要求實現併發控制(比如售票),那選擇innodb有很大的優勢。
如果需要頻繁的更新、刪除操作的資料庫,也可以選擇innodb,因為支援事務的提交(commit)和回滾(rollback)。
innodb的聚簇索引就是表本身,它由表的資料與b+tree索引組成。
其中內部節點中包括索引列和指向下一節點的指標,而葉子節點包括表所有列上的資料,比如主鍵列,mvcc列,回滾列其它列等等。所以我們在查詢資料時直接就能夠查詢到我們想要的資料。
innodb的二級索引(非聚簇索引)
內部結點中包含索引列與指向下個節點的指標,而葉子節點則包括索引列和主鍵值。這也就造成了如果我們想要通過二級索引去查詢一條資料的啥時候需要兩輪的查詢,第一輪是通過b+tree查詢到主鍵值,第二輪就是拿著主鍵值再經過一次b+tree的查詢找到真實的值。
innodb也使用b+tree作為索引結構。第乙個重大區別是innodb的資料檔案本身就是索引檔案。myisam索引檔案和資料檔案是分離的,索引檔案僅儲存資料記錄的位址。而在innodb中,表資料檔案本身就是按b+tree組織的乙個索引結構,這棵樹的葉節點data域儲存了完整的資料記錄。這個索引的key是資料表的主鍵,因此innodb表資料檔案本身就是主索引。
2、myisam儲存引擎
myisam基於isam儲存引擎,並對其進行擴充套件。它是在web、資料倉儲和其他應
用環境下最常使用的儲存引擎之一。myisam擁有較高的插入、查詢速度,但不支援
事務,不支援外來鍵。
myisam特點:插入資料快,空間和記憶體使用比較低。如果表主要是用於插入新
記錄和讀出記錄,那麼選擇myisam能實現處理高效率。如果應用的完整性、併發性
要求比較低,也可以使用。
myisam引擎使用b+tree作為索引結構,葉節點的data域存放的是資料記錄的位址
3、memory儲存引擎
memory儲存引擎將表中的資料儲存到記憶體中,為查詢和引用其他表資料提供快
速訪問。
memory特點:所有的資料都在記憶體中,資料的處理速度快,但是安全性不高。
如果需要很快的讀寫速度,對資料的安全性要求較低,可以選擇memoey。
它對錶的大小有要求,不能建立太大的表。所以,這類資料庫只使用在相對較小的資料庫表。
MySQL三種常見儲存引擎
mysql中的資料用各種不同的技術儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。這些不同的技術以及配套的相關功能在mysql中被稱作儲存引擎 ...
mysql三種引擎 MySQL常見的三種儲存引擎
簡單來說,儲存引擎就是指表的型別以及表在計算機上的儲存方式。儲存引擎的概念是mysql的特點,oracle中沒有專門的儲存引擎的概念,oracle有oltp和olap模式的區分。不同的儲存引擎決定了mysql資料庫中的表可以用不同的方式來儲存。我們可以根據資料的特點來選擇不同的儲存引擎。在mysql...
mysql三種引擎 MySQL常見的三種儲存引擎
原文連線 簡單來講,儲存引擎就是指表的型別以及表在計算機上的儲存方式。資料庫 儲存引擎的概念是mysql的特色,oracle中沒有專門的儲存引擎的概念,oracle有oltp和olap模式的區分。不一樣的儲存引擎決定了mysql資料庫中的表能夠用不一樣的方式來儲存。咱們能夠根據資料的特色來選擇不一樣...