關於mysql的數據引擎的筆記

前言

我這篇筆記的關鍵部分算是直接拷貝了不少大佬寫的資料,但由於當時沒有記錄鏈接,導致我現在無法找到這些資料的來源,也就無法將鏈接寫進“參考資料”欄目裏以便表示感謝。如果原作者看到,請在下面評論源地址鏈接,我會在後續加上的。

什麼是數據引擎

定義

爲了對應不同的業務,mysql會使用不同的存儲機制,索引技巧來安排數據庫,而這些技術就可以被稱爲數據引擎。它是數據庫的一種內部屬性。

查看

使用show engines即可查看數據庫的引擎。我使用的是navicat for mysql,查詢出來的結果如圖所示
這裏寫圖片描述
其中yes表示當前可以切換的數據引擎,而default自然就代表默認使用的數據引擎,no代表的就是禁用的數據引擎,可以通過命令開啓。

五個主流引擎的對比

特性 MyISAM Memory InnoDB Archive NDB
存儲上限 NDB RAM 64TB 384EB
事務支持
鎖粒度
MVCC
地理空間數據類型支持
地理空間索引支持
B-tree 索引
T-tree 索引
Hash 索引
全文檢索索引
聚集索引
數據緩存 N/A
索引緩存 N/A
數據壓縮
數據加密
支持數據庫集羣
支持主從
支持外鍵
備份/時間點恢
支持查詢緩存
更新數據字典的統計

特性簡介

  1. InnoDB:MySql 5.6 版本默認的存儲引擎。InnoDB 是一個事務安全的存儲引擎,它具備提交、回滾以及崩潰恢復的功能以保護用戶數據。InnoDB 的行級別鎖定以及 Oracle 風格的一致性無鎖讀提升了它的多用戶併發數以及性能。InnoDB 將用戶數據存儲在聚集索引中以減少基於主鍵的普通查詢所帶來的 I/O 開銷。爲了保證數據的完整性,InnoDB 還支持外鍵約束。
  2. MyISAM:表級別的鎖定限制了它在讀寫負載方面的性能,因此它經常應用於只讀或者以讀爲主的數據場景。
  3. Memory:在內存中存儲所有數據,應用於對非關鍵數據由快速查找的場景。Memory 引擎曾被稱爲 HEAP 引擎。它的使用案例正在減少:InnoDB 的內存緩衝區爲將大部分或全部數據保持在內存提供了一個通用並耐用的方式,NDBCLUSTER 爲大分佈式數據集提供了快速的 key-value 訪問。
  4. CSV:它的表真的是以逗號分隔的文本文件。CSV 表允許你以 CSV 格式導入導出數據,以相同的讀和寫的格式和腳本和應用交互數據。由於 CSV 表沒有索引,你最好是在普通操作中將數據放在 InnoDB 表裏,只有在導入或導出階段使用一下 CSV 表。
  5. Blackhole:黑洞存儲引擎,類似於 Unix 的 /dev/null,Archive 只接收但卻並不保存數據。對這種引擎的表的查詢常常返回一個空集。這種表可以應用於 DML 語句需要發送到從服務器,但主服務器並不會保留這種數據的備份的主從配置中。一般可以用來保存日誌文件,當做備份數據庫使用。
  6. NDB:(又名 NDBCLUSTER)——這種集羣數據引擎尤其適合於需要最高程度的正常運行時間和可用性的應用。注意:NDB 存儲引擎在標準 MySql 5.6 版本里並不被支持。目前能夠支持 MySql 集羣的版本有:基於 MySql 5.1 的 MySQL Cluster NDB 7.1;基於 MySql 5.5 的 MySQL Cluster NDB 7.2;基於 MySql 5.6 的 MySQL Cluster NDB 7.3。同樣基於 MySql 5.6 的 MySQL Cluster NDB 7.4 目前正處於研發階段。
  7. Merge:允許 MySql DBA 或開發者將一系列相同的 MyISAM 表進行分組,並把它們作爲一個對象進行引用。適用於超大規模數據場景,如數據倉庫。
  8. Federated:提供了從多個物理機上聯接不同的 MySql 服務器來創建一個邏輯數據庫的能力。適用於分佈式或者數據市場的場景。
  9. Example:這種存儲引擎用以保存闡明如何開始寫新的存儲引擎的 MySql 源碼的例子。它主要針對於有興趣的開發人員。這種存儲引擎就是一個啥事也不做的 “存根”。你可以使用這種引擎創建表,但是你無法向其保存任何數據,也無法從它們檢索任何索引。
  10. Archive:archive是歸檔的意思,僅僅支持插入和查詢兩種功能,在MySQL5.5以後支持索引功能,他擁有很好的壓縮機制,使用zlib壓縮庫,在記錄請求的時候實時的進行壓縮,經常被用來作爲倉庫使用。適合存儲大量的獨立的作爲歷史記錄的數據。擁有很高的插入速度但是對查詢的支持較差。

參考資料

https://blog.csdn.net/wangyang1354/article/details/50740041

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章