mysql的三種儲存引擎即三種型別的表

2021-09-26 22:19:52 字數 1753 閱讀 5424

mysql 的環境變數:......server/bin下

引擎(engine):是電子平台上開發程式或系統的核心元件。利用引擎,開發者可迅速建立、鋪設程式所需的功能,或利用其輔助程式的運轉。一般而言,引擎是乙個程式或一套系統的支援部分。常見的程式引擎有遊戲引擎,搜尋引擎,防毒引擎等。

儲存引擎就是指表的型別以及表在計算機上的儲存方式

儲存引擎的概念是mysql的特點,oracle中沒有專門的儲存引擎的概念,oracle有oltp和olap模式的區分。不同的儲存引擎決定了mysql資料庫中的表可以用不同的方式來儲存。我們可以根據資料的特點來選擇不同的儲存引擎。

通過show engines;檢視sql下的引擎

1.innodb

innodb給mysql的表提供了事務處理回滾崩潰修復能力多版本併發控制的事務安全。在mysql從3.23.34a開始包含innnodb。它是mysql上第乙個提供外來鍵約束的表引擎。而且innodb對事務處理的能力,也是其他儲存引擎不能比擬的。靠後版本的mysql的預設儲存引擎就是innodb支援id自增,還支援外來鍵

innodb的優勢在於提供了良好的事務處理、崩潰修復能力和併發控制。缺點是讀寫效率較差,占用的資料空間相對較大(連表查詢)。

2.myisam

myisam的表儲存成3個檔案。檔案的名字與表名相同。拓展名為frm、myd、myi。其實,frm檔案儲存表的結構;myd檔案儲存資料,是mydata的縮寫;myi檔案儲存索引,是myindex的縮寫。

基於myisam儲存引擎的表支援3種不同的儲存格式。包括靜態型、動態型和壓縮型。

其中,靜態型是myisam的預設儲存格式,它的字段是固定長度的,該錶具有極高的訪問速度,即使在操作相當的資料表也是如此,但其最大的缺點就是占用空間較大;

動態型包含變長字段,記錄的長度不是固定的,其優點是它存資料時,採用的是資料的實際長度,能節省不少空間,但也是由於這點,當資料要做更新時,長度發生變更時,

就不會存在原來的位置,而存在別的位置,造成原來的位置形成一空洞,並且關聯的資料並不是存放在相鄰的塊中,而且產生大量的碎片,要定期進行碎片整理;

壓縮型需要用到myisampack工具,空間占用相當小,只有原大小的一半,而且讀取資料時,還會對資料進行加壓縮,並且注意該型別的表是唯讀表,不能進行修改.

3.memory

資料全部放在記憶體中,

每個基於memory儲存引擎的表實際對應乙個磁碟檔案。該檔案的檔名與表名相同,型別為frm型別。該檔案中只儲存表的結構。而其資料檔案,都是儲存在記憶體中,這樣有利於資料的快速處理,提高整個表的效率。值得注意的是,伺服器需要有足夠的記憶體來維持memory儲存引擎的表的使用。如果不需要了,可以釋放記憶體,甚至刪除不需要的表。

memory預設使用雜湊索引。速度比使用b型樹索引快。當然如果你想用b型樹索引,可以在建立索引時指定。

注意,memory用到的很少,因為它是把資料存到記憶體中,如果記憶體出現異常就會影響資料。如果重啟或者關機,所有資料都會消失。因此,基於memory的表的生命週期很短,一般是一次性的。

MySQL三種常見儲存引擎

mysql中的資料用各種不同的技術儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。這些不同的技術以及配套的相關功能在mysql中被稱作儲存引擎 ...

mysql三種引擎 MySQL常見的三種儲存引擎

簡單來說,儲存引擎就是指表的型別以及表在計算機上的儲存方式。儲存引擎的概念是mysql的特點,oracle中沒有專門的儲存引擎的概念,oracle有oltp和olap模式的區分。不同的儲存引擎決定了mysql資料庫中的表可以用不同的方式來儲存。我們可以根據資料的特點來選擇不同的儲存引擎。在mysql...

mysql三種引擎 MySQL常見的三種儲存引擎

原文連線 簡單來講,儲存引擎就是指表的型別以及表在計算機上的儲存方式。資料庫 儲存引擎的概念是mysql的特色,oracle中沒有專門的儲存引擎的概念,oracle有oltp和olap模式的區分。不一樣的儲存引擎決定了mysql資料庫中的表能夠用不一樣的方式來儲存。咱們能夠根據資料的特色來選擇不一樣...