Mysql數據庫是一款開源的數據庫,支持多種存儲引擎的選擇,好比目前最經常使用的存儲引擎有:MyISAM,InnoDB,Memory等。git
MyISAM是Mysql的默認存儲引擎,它支持B-tree/FullText/R-tree索引類型,而且MyISAM的鎖級別是表鎖,表鎖的開銷小,加鎖快;鎖粒度大,發生鎖衝突的機率較高,併發度低;表鎖適合查詢。MyISAM引擎不支持事務性,也不支持外鍵。github
InnoDB 存儲引擎最大的亮點就是支持事務性,支持回滾。它支持Hash/B-tree索引類型。InnoDB的鎖級別是行鎖,行鎖在鎖定上帶來的消耗大於表鎖,但 是在系統併發訪問量較高時,InnoDB總體性能遠高於MyISAM。InnoDB的索引不只緩存索引自己,也緩存數據,因此InnoDB須要更大的內 存。sql
Memory存儲引擎是一個內存級的存儲引擎,它將全部數據都存儲在內存中,因此它可以存儲的數據量是比較小的。而由於內存的特性,Memory存儲引擎對於數據的一致性支持教差。Memory的鎖級別和MyISAM同樣,是表鎖;而且不支持事務性。數據庫
數據庫的選擇,數據庫存儲引擎的選擇,以及數據庫的優化,就像是一門藝術,它沒有好與壞之分,只有適合與不適合。一個項目須要考慮的因素不少,如何去權衡幾個因素之間的權重,如何找到一個最優解,真的須要長時間的經驗積累,數據庫的學習之路漫漫,堅持,再堅持!緩存
原文做者:我纔是二亮
原文連接:http://2liang.github.io/2015/08/30/Mysql存儲引擎及選擇方法/
轉載必須在正文中標註並保留原文連接、做者等信息。安全