Mysql存盤引擎:
1. MyISAM
1.1 MyISAM存盤組成
MyISAM的存盤格式主要有:
1、資料檔案:存盤資料行, 資料檔案擴展名為.MYD(MYData),
2、索引檔案:存盤索引資料,索引檔案擴展名為.MYI(MYIndex),
3、frm檔案:存盤表定義資訊,主要包括表列和列定義資訊、各種屬性、擴展及MyISAM的表的各種引數等資訊,表定義擴展名為.MYD(MYData),
4、opt檔案:存盤MyISAM表的相關選項,將快取的表據放在此檔案中,
1.2 MyISAM具有的特點:
1. 不支持事務:MyISAM表不支持事務處理,無法保證多次操作要么全部成功,要么全部失敗,若不小心造成資料損壞只能重建整個表,
2. 不支持完整性約束(不支持外鍵):MyISAM表不支持完整性約束,比如不能建立主外鍵,也不能限制列的唯一性、非空性等,
3. 支持表鎖:MyISAM表支持表鎖、行鎖,但是表鎖模式在某些場景下可能會阻塞其它事務,所以不建議采用,
4. 支持全文索引:MyISAM引擎支持全文索引,
5. 支持插入高速快取:MyISAM表支持插入高速快取,在插入大量資料時可以大大提升效率,
6. 高讀取性能:MyISAM表的資料量比較大,無法采用事務的機制防止資料的臟讀,因此MyISAM表的性能更加好,(建議在主從機制中,可以在主服務器使用InnoDB存盤引擎,在從結點中使用MyISAM存盤引擎)
注:全文索引是指一種特殊的索引,可以讓系統分析整段文本的意思,從而建立索引,方便用戶在搜索引擎中搜索出包含所要搜索指定文本的資訊,例如在一個檔案中包含有“它的色彩艷麗”一詞,只要輸入“艷麗”一詞就可以搜索到所要查詢的檔案,這樣可以節省很多時間,搜索結果也會更精準,
2. InnoDB
2.1 InnoDB存盤組成
InnoDB存盤引擎使用B+樹來索引資料,將索引資料存盤在IBD檔案中,InnoDB存盤引擎使用兩個獨立的檔案:索引檔案和資料檔案, 索引檔案后綴為.ibd,它將一些B+樹資料結構儲存在一個檔案里,用來存放關鍵字或是主鍵, 而資料檔案是 .ibd 型別,部分其他內容索引檔案中有新資訊時將同步更新,以便恢復或更新操作的完整程序的正確性,達到索引重建、內容抵消以及內容讀取的功能, 關于范式,InnoDB會自動拆分大的多樣的表,形成一個索引樹,通過B+樹的索引去定位一條具體的資料,從而實作快速查找資料,
1.2 InnoDB具有的特點:
1. 支持事務:InnoDB存盤引擎是支持事務的,它支持ACID(原子性、一致性、隔離性和持久性)特性,且實作了MVCC(多版本并發控制),支持自動提交,回滾,崩潰恢復等,
2. 支持行鎖和表鎖:InnoDB支持行級鎖和表級鎖,行級鎖可以有效的提高并發性能,而表級鎖可以確保資料的完整性,
3. 支持完整性約束(外鍵):InnoDB存盤引擎支持外鍵約束功能,可以保證完整性,減少資料冗余,
4. 實作了型別可拓展表:InnoDB支持多欄位的型別可拓展表,可以很好的滿足用戶的多變需求,
5. 支持多版本并發控制:InnoDB實作了多版本并發控制(MVCC),應用程式可以比較資料的變化范圍,以此來避免寫沖突及死鎖,
6. 支持原子性:InnoDB支持事務原子性,可以讓修改某行記錄操作原子化,
7. 支持快斬訓復:InnoDB支持快斬訓復,可以從上一次發生故障后的檢查點(checkpoint)開始恢復,
8. 支持磁區表:InnoDB支持水平及垂直磁區表,可以支持更大的表,以及提升查詢性能,
9. 支持快取機制:InnoDB內部采用預讀機制,將資料放入快取中,可以提高資料的讀取性能,
10. 支持排序:InnoDB可以根據用戶給出的排序域,對結果集進行排序,
A:ACID是指原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability),
1. 原子性(Atomicity):事務是作為一個不可分割的單元執行的,要么完全執行,要么完全不執行,
2. 一致性(Consistency):事務執行前和執行后,資料庫必須保持一致狀態,
3. 隔離性(Isolation):一個事務的執行不能被其他并發的事務所干擾,
4. 持久性(Durability):一個事務一旦被提交,它對資料庫中資料的改變就是永久性的,即使發生系統故障也不應破壞其結果,
3.MEMORY
3.1,MEMORY介紹存盤引擎
MEMORY存盤引擎使用物理記憶體存盤資料,在服務器關閉時會丟失存盤的內容,因此又被稱為記憶體存盤引擎,不支持事務操作,
3.2,InnoDB具有的特點:
1. 速度極快:MEMORY引擎存盤的資料存盤在物理記憶體中,且沒有磁盤的IO消耗,讀寫資料的速度非常快;
2. 服務器重啟消失:MEMORY存盤引擎存盤的內容隨著服務器的關閉而消失,因此資料不可持久化;
3. 不支持事務:MEMORY不支持事務操作,也就是說不能用ROLLBACK、COMMIT等操作;
4. 不能添加索引:MEMORY存盤引擎不能添加索引,全表掃描幾乎是唯一的訪問方式,
用途:
MEMORY的主要應用是臨時表,一些短暫的操作,使用MEMORY可以提高查詢的效率,比如從復雜的表中查詢 出少量的資料,在不需要持久化的場景中,使用MEMORY會更加高效,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/543823.html
標籤:其他
上一篇:DataX二次開發——HdfsReader和HdfsWriter插件增加parquet檔案讀寫
下一篇:HiveSQL 作業實戰總結
