1. 程式人生 > >淺談MySQL引擎

淺談MySQL引擎

mem mys 隨機 spa 也有 pan 很多 總結 簡單

MySQL有很多引擎,MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED...等等

比較常用的就是InnoDB和MyISAM了

>. MyISAM不支持事務,InnoDB支持,MyISAM不具有原子性,如果你需要支持事務,那就只能選擇InnoDB

>.MyISAM只支持表級鎖,InnoDB支持行級、頁級、表級鎖,

>.InnoDB(索引組織表)使用的聚簇索引、索引就是數據,順序存儲,因此能緩存索引,也能緩存數據,MyISAM(堆組織表)使用的是非聚簇索引、索引和文件分開,隨機存儲,只能緩存索引。

>.InnoDB計算總條數需要掃描表,而MyISAM是存儲的,如果有where條件,MyISAM也需要重新掃描表

>.MyISAM會讀寫阻塞,InnoDB根據事務隔離級別決定

總結:MyISAM適合讀多寫少,不具有原子性,簡單的,而InnoDB適合寫多讀少的,支持事務,高並發;

不過在5.1以後,InnoDB被MySQL設置為默認引擎,在讀寫方面效率也有很大的提升,不比MyISAM差,當然具體場景具體分析。

淺談MySQL引擎