官方文件:
innodb是
mysql
的預設事務型引擎,也是使用最廣泛的儲存引擎。
innodb
被設計用來處理大量的短期事物。
innodb
的效能和崩潰自動恢復特性使得它在非事物型儲存的需求中也很流行。除非有非常特別的原因需要使用其它的儲存引擎,否則應該優先考慮
innodb
引擎。innodb儲存引擎特性
1.最大儲存64tb 2.
標準acid事務
3.行級鎖
4.多版本併發控制
(mvcc) 5.
地理空間資料型別支援
6.地理空間索引
支援7.
b-tree索引
支援8.
全文索引
支援9.
聚簇索引
10.資料快取
11.查詢快取
12.索引快取
13.壓縮資料
14.資料加密
15.外來鍵支援
16.備份/恢復時間點
17.複製支援
18.字典表統計更新
innodb儲存引擎優勢
1.如果伺服器因硬體或軟體問題而崩潰,無論資料庫中發生了什麼,在重新啟動資料庫後不需要做任何的操作,
innodb
將自動恢復到提交後的狀態。
2.innodb在記憶體中維護它自己的快取池對表和索引資料快取,常用的資料直接在記憶體中處理。快取適用於多種型別的資訊,並加快了處理速度。在資料庫伺服器,高達
80%的物理記憶體通常是分配給
innodb
緩衝池。
3.如果將相關的資料分割在不同的表中,可以設定外來鍵來強制完整性引用。更新或刪除資料,其它表中的相關資料將自動更新或刪除。
4.如果資料在磁碟或記憶體中損壞,那麼在使用之前檢驗機制會提醒你資料為虛假資料。
5.當表設定了適當的主鍵列時,涉及主鍵列的操作會自動優化。在
where
子句、order by
子句、group by
子句和連線操作中引用主鍵列的速度將非常快。
6.插入、更新和刪除使用「更改緩衝」的自動優化機制精簡磁碟
i / o
操作。7.效能不會受到大型表的連續查詢影響。當連續訪問表中同一行資料時,自適應雜湊索引能夠使這些查詢更快。
8.你可以壓縮表和相關的索引。
9.建立和刪除索引對效能和可用性影響更小。
10.截短表空間檔案的速度非常快,並釋放磁碟空間。釋放的磁碟空間是系統可重用的而不是只有
innodb
可以復用的系統表空間。
11.動態行的格式使得
blob
和長文字欄位的資料儲存更有效率。
12.你可以通過查詢
information_schema
表監控儲存引擎的內部工作。
13.你可以通過查詢
performance schema
表來監視儲存引擎的效能細節
14.你可以在一條查詢語句中混合
innodb
的表和其它儲存引擎的表。例如,你可以使用
join
操作在乙個查詢裡聯合
innodb
表和memory
表的資料。
15.innodb在進行大規模資料處理時對
cpu效能進行了優化。
16.innodb表可以處理大量的資料,即使作業系統的檔案大小限制為
2gb。
myisam是
mysql5.1
之前版本的預設儲存引擎。
myisam
提供了大量的特性,但
myisam
不支援事務和行級鎖,而且崩潰後無法安全恢復。對於唯讀的資料或者表比較小,可以忍受恢復操作,則可以繼續使用
myisam
。myisam儲存引擎特性
1.最大儲存256tb 2.
表級鎖3.
地理空間資料型別支援
4.地理空間索引支援
5.b-tree索引支援
6.全文索引支援
7.索引快取
8.查詢快取
9.壓縮資料
10.資料加密
11.時間點備份/恢復
12.複製支援
13.字典表統計更新
myisam儲存引擎優勢
1.如果表不會再進行修改操作,那麼這樣的表或許適合採用myisam壓縮表。壓縮表不能進行修改。壓縮表可以極大地減少磁碟空間占用,因此可以減少磁碟
i/o,從而提公升查詢效能。壓縮表也支援索引,但索引也是唯讀的。
2.myisam引擎設計簡單,資料以緊密格式儲存,所以在某些場景下效能很好。
3.每張表最多支援64個索引,每個索引最多支援
16個字段。
4.最大的key長度為
1000
位元組。5.
blob和
text
列可以基於前
1000
位元組建立索引。
6.索引列中允許null值。
7.可以將資料檔案和索引檔案放在不同物理裝置的不同目錄中來得到更快的速度。
8.每個列可以有不同的字符集。
mymory儲存引擎
(以前稱為
heap)
是將資料儲存在記憶體中的專用表。因為所有的資料都儲存在記憶體中,至少比一般的表要快乙個數量級。由於資料易受崩潰、硬體問題或電源中斷的影響,只能將這些表用作臨時工作區或其他表資料的唯讀快取。
mymory
不支援blob
或text
型別,並且每行的長度是固定的。
mymory儲存引擎特性
1.最大儲存與物理記憶體相關
2.表級鎖
3.b-tree索引支援
4.雜湊索引支援
5.複製支援
6.時間點備份/恢復
7.查詢快取
8.資料加密
9.字典表統計更新
csv引擎可以將普通的
csv檔案
(都好分割的檔案)作為
mysql
的表來處理。資料檔案是純文字檔案,不支援索引。可以將
excel
等電子**軟體中的資料儲存為
csv檔案複製到
mysql
資料目錄下就能在
mysql
中開啟使用。同樣,如果將資料寫入到
csv引擎表,其它的外部程式也能立即從表的資料檔案中讀取
csv格式的資料。因此
csv引擎也可以作為一種資料交換的機制。
archive引擎用於儲存大量沒有索引的資料。只支援
insert
和select
操作。archive
引擎會快取所有的寫並利用
zlib
對插入的行進行壓縮,所以比
myisam
表的磁碟
i/o更少。但是每次
select
查詢都需要執行全表掃瞄。所以
archive
表適合日誌和資料採集類應用,或者在一些需要更快速的
insert
操作的場合下使用。
archive儲存引擎特性
1.最大儲存無限制
2.行級鎖
3.壓縮資料
4.資料加密
5.複製支援
6.時間點備份/恢復
7.查詢快取
8.字典表統計更新
blackhole引擎沒有實現任何儲存機制,它會丟棄所有插入的資料,不做任何儲存,但伺服器會記錄
blackhole
表的日誌。一般不使用這個儲存引擎。
merge儲存引擎也被稱為
mrg_myisam引擎
,是myisam引擎的乙個變種。
merge
表是由多個
myisam
表合併而來的虛擬表。如果將
mysql
用於日誌或者資料倉儲類應用,該功能可以發揮作用。引入分割槽功能後,該引擎已經被放棄。
federated引擎是訪問其它
mysql
伺服器的乙個**,它會建立乙個到遠端
mysql
伺服器的客戶端連線,並將查詢傳輸到遠端伺服器執行。該引起看起來提供了一種很好的跨伺服器的靈活性,但也經常帶來問題,因此預設是禁用的。
example儲存引擎是乙個不做任何事情的存根引擎。其目的是作為
mysql
源**中的乙個示例,說明如何開始編寫新的儲存引擎。因此,它主要是感興趣的開發人員使用。
mysql儲存引擎 mysql儲存引擎簡介
精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...
mysql個儲存引擎 MySQL儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...
mysql儲存引擎模式 mysql儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...