日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL存储引擎的选择

發布時間:2023/12/20 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL存储引擎的选择 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

記得一年多前在為我們的產品選擇MySQL的存儲引擎時——InnoDB和MyISAM之間,費了好大的功夫,從網絡和一些書籍中收集了很多資料來論證,最終我們以到底是讀多寫少還是寫多讀少這個普遍觀點當做決定條件選擇了InnoDB。前些日子在閱讀了《高性能MySQL》(第三版,這一版由淘寶的DBA翻譯,我個人感覺質量非常好)之后,書中對存儲引擎的選擇有著更權威更系統的回答,下面我就循著書籍來給大家總結一下我們耳熟能詳的兩個存儲引擎InnoDB和MyISAM在產品中如何選擇。


先看書中這么幾句話:“大部分情況下,InnoDB都是正確的選擇 ; 除非要用到某些InnoDB不具備的特性,并且沒有其他辦法可以替代,否則都應該優先選擇InnoDB引擎”,比如這個例子,如果要用到全文索引,建議先考慮InnoDB加上Sphinx的組合,而不是使用支持全文索引的MyISAM。

InnoDB的一些特性

  • 事務支持:如果應用需要事務支持,那么InnoDB是目前最穩定并且是經過驗證的選擇;

  • 備份:如果需要在線熱備份,選擇InnoDB就是基本的要求;

  • 崩潰恢復:相對而言,MyISAM崩潰后發生損壞的概率比InnoDB要高很多,而且恢復速度也慢。因此,即使不需要事務支持,很多人也會選擇InnoDB。InnoDB還支持真正的熱備份;

  • 鎖粒度:InnoDB支持的是行級鎖;

MyISAM的一些特性

  • 鎖粒度:表級鎖,讀取時會對操作表加共享鎖,寫入時則加排它鎖;

  • 修復:支持手工或者自動執行檢查的修復操作。但是修復可能會導致一些數據丟失,而且修復操作很慢;

  • 索引特性:支持全文索引;

  • 延遲更新索引鍵:提升了寫入性能降低了安全性;

  • MyISAM引擎設計簡單,數據以緊密格式存儲,所以在某些場景下性能很好;

前面我說的以前選擇MySQL究竟是采用的InnoDB還是MyISAM存儲引擎主要看應用場景是“讀多寫少還是還是寫多讀少”,如果是前者就采用MyISAM,后者就采用InnoDB。書中也有建議“對于只讀或者大部分情況下只讀的表,如果不介意MyISAM的崩潰恢復問題,選用它是合適的。但是仍然給我們提了個醒:MyISAM引擎在一開始可能沒有任何問題,但隨著應用壓力的上升,則可能迅速惡化。各種鎖爭用、崩潰后的數據丟失等問題都會隨之而來。

從上面的分析和建議來看,之于InnoDB引擎,仿佛MyISAM缺點多多。但是其存在就有其意義,對于日志型應用,CD-ROM的應用(MyISAM的壓縮表)...選用MyISAM是非常適合的。

以上就是我結合《高性能MySQL》這本書籍對兩個常用存儲引擎選擇的總結,書中全篇都在講如何合適,更高效的使用MySQL,建議感興趣的朋友進行全面閱讀,為自己的應用搭建起高效健壯的數據中心。


轉載于:https://blog.51cto.com/yaocoder/1330399

總結

以上是生活随笔為你收集整理的MySQL存储引擎的选择的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。