您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關mysql中常見的存儲引擎,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
MySQL中的數據用各種不同的技術存儲在文件(或者內存)中。這些技術中的每一種技術都使用不同的存儲機制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。常用的存儲引擎有:
1、InnoDB 引擎(MySQL5.5以后默認使用)
MySQL 5.5 及以后版本中的默認存儲引擎,它的優點如下:
災難恢復性好
支持事務
使用行級鎖
支持外鍵關聯
支持熱備份
對于InnoDB引擎中的表,其數據的物理組織形式是簇表(Cluster Table),主鍵索引和數據是在一起的,數據按主鍵的順序物理分布實現了緩沖管理,不僅能緩沖索引也能緩沖數據,并且會自動創建散列索引以加快數據的獲取
2、MyISAM引擎
特性如下:
不支持事務
使用表級鎖,并發性差
主機宕機后,MyISAM表易損壞,災難恢復性不佳
可以配合鎖,實現操作系統下的復制備份、遷移
只緩存索引,數據的緩存是利用操作系統緩沖區來實現的。可能引發過多的系統調用且效率不佳
數據緊湊存儲,因此可獲得更小的索引和更快的全表掃描性能
3、MEMORY 存儲引擎
特點:
提供內存表,不支持事務和外鍵
使用表級鎖,雖然內存訪問快,但如果頻繁的讀寫,表級鎖會成為瓶頸
只支持固定大小的行。Varchar類型的字段會存儲為固定長度的Char類型,浪費空間
不支持TEXT、BLOB字段。當有些查詢需要使用到臨時表(使用的也是MEMORY存儲引擎)時,如果表中有TEXT、BLOB字段,那么會轉換為基于磁盤的MyISAM表,嚴重降低性能
由于內存資源成本昂貴,一般不建議設置過大的內存表,如果內存表滿了,可通過清除數據或調整內存表參數來避免報錯
服務器重啟后數據會丟失,復制維護時需要小心
看完上述內容,你們對mysql中常見的存儲引擎有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。