1. 程式人生 > >mysql學習之1——mysql不同引擎的區別

mysql學習之1——mysql不同引擎的區別

以下表格是經過各種資料和書籍的查詢,經過整理得出來的。可以作為參考,但不一定十分準確,希望讀者及時給與補充和錯誤更正。

引擎名稱 MyISAM InnoDB Archive Memory Heap merge
是否第三方
是否支援事務
是否支援外來鍵
是否容錯 修復資料庫檔案的MyISAMCHK,
恢復浪費空間的 MyISAMPACK,
不能在表損壞後恢復資料
自動災難恢復 mysqld守護程序崩潰時,所有的Memory資料都會丟失 在關機之前沒有進行儲存,那麼所有的資料都會丟失
索引 B-Tree(參與一個索引的所有欄位長度之和不能超過1000位元組),R-Tree,Full-Text B+Tree,(Cluster Primary Key,Secondary Index:B-Tree),自適應雜湊索引(根據表的使用情況自動生成,無法進行人為建立) 不支援 Hash,B-Tree B-Tree B-Tree
表級鎖定,併發量小 行級鎖定,併發量大 行級鎖定 頁級鎖定
讀寫速度 最快
cpu利用率 為處理巨大資料量時的最大效能設計,它的CPU效率可能是任何其它基於磁碟的關係資料庫引擎所不能匹敵的
查詢快取
data緩衝池
儲存結構 每個表被存在分離的檔案中 表&索引在一個表空間中,表空間可以包含數個檔案(或原始磁碟分割槽),可以是任何尺寸,即使檔案尺寸被限制為2GB
儲存空間 非常小
駐留記憶體
限制 每個MyISAM表最大索引數是64。 這可以通過重新編譯來改變。每個索引最大的列數是16個 僅僅支援最基本的插入和查詢兩種功能 不支援Blog,和Text型別的欄位 在用完表格之後就刪除表格 本身不儲存資料,Merge表就是幾個相同MyISAM表的聚合器

以下是幾篇參考文章的地址,以供讀者參考:

淺談MySQL儲存引擎選擇 InnoDB與MyISAM的優缺點分析:

MySQL儲存引擎中的MyISAM和InnoDB區別詳解(非常推薦,講解細緻):