Mysql儲存引擎及選擇方法,mysql儲存引擎

來源:互聯網
上載者:User

Mysql儲存引擎及選擇方法,mysql儲存引擎
0x00 Mysql資料庫常用儲存引擎

Mysql資料庫是一款開源的資料庫,支援多種儲存引擎的選擇,比如目前最常用的儲存引擎有:MyISAM,InnoDB,Memory等。

MyISAM儲存引擎

MyISAM是Mysql的預設儲存引擎,它支援B-tree/FullText/R-tree索引類型,並且MyISAM的鎖層級是表鎖,表鎖的開銷小,加鎖快;鎖粒度大,發生鎖衝突的機率較高,並發度低;表鎖適合查詢。MyISAM引擎不支援事務性,也不支援外鍵。

InnoDB儲存引擎

InnoDB儲存引擎最大的亮點就是支援事務性,支援復原。它支援Hash/B-tree索引類型。InnoDB的鎖層級是行鎖,行鎖在鎖定上帶來的消耗大於表鎖,但是在系統並發訪問量較高時,InnoDB整體效能遠高於MyISAM。InnoDB的索引不僅緩衝索引本身,也快取資料,所以InnoDB需要更大的記憶體。

Memory儲存引擎

Memory儲存引擎是一個記憶體級的儲存引擎,它將所有資料都儲存在記憶體中,所以它能夠儲存的資料量是比較小的。而因為記憶體的特性,Memory儲存引擎對於資料的一致性支援教差。Memory的鎖層級和MyISAM一樣,是表鎖;並且不支援事務性。

0x01 如何選擇合適的儲存引擎採用MyISAM引擎
  • R/W > 100 : 1並且Update較少 (R/W:讀寫比)
  • 並發不高,不需要支援事務
  • 表資料量小
  • 需要進行全文檢索搜尋
採用InnoDB引擎
  • R/W比較小,頻繁更新大欄位
  • 表資料量超過千萬,高並發
  • 安全性和可用性要求高
採用Memory引擎
  • 有足夠的記憶體
  • 對資料一致性要求不高,如session/線上人數等
  • 需要定期歸檔的資料
0x02 結語

資料庫的選擇,資料庫儲存引擎的選擇,以及資料庫的最佳化,就像是一門藝術,它沒有好與壞之分,只有適合與不適合。一個項目需要考慮的因素很多,如何去權衡幾個因素之間的權重,如何找到一個最優解,真的需要長時間的經驗積累,資料庫的學習之路漫漫,堅持,再堅持!

原文作者:我才是二亮
原文連結:http://www.2liang.me/archives/254
轉載必須在本文中標註並保留原文連結、作者等資訊。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.