2011-04-26 54 views
0

作爲Craiglist類型站點的存儲引擎,MyIsam或InnoDb以及爲什麼會是一個明顯的選擇?存儲網站選擇 - Myisam或Innodb?

請與您的喜好具體原因解釋

一個Craigslist網站類型的網站將有大量讀取和寫入,但可能更多的讀取,因爲很多人來到那裏尋找他們想要的信息(通過搜索引擎)並沒有太多的帖子...但只是發現他們正在尋找...

你會在這種情況下做什麼Innodb或Myisam?既然有讀取和寫入..?

+0

這個問題是堆棧溢出題外。我建議將它移到[網站管理員](http://webmasters.stackexchange.com/)。請參閱[Stack Overflow的常見問題](http://stackoverflow.com/faq)以瞭解更多關於這裏主題的信息。 – 2011-04-26 19:30:25

+0

可能重複[有什麼區別MyISAM和InnoDB?](http://stackoverflow.com/questions/12614541/whats-the-difference-between-myisam-and-innodb) – Kzqai 2015-01-12 03:30:01

回答

4

In v。高層方面:

InnoDB的

  • 支持事務
  • 行級鎖
  • 支持外鍵約束
  • 工作負載良好的操控性,有很多的併發寫入
  • 碰撞安全
  • 行級鎖定避免了很多令人討厭的鎖定情況

MySQL的

  • 沒有交易
  • 表級鎖
  • 支持融合表可以是有用的
  • 適合那裏有大量的讀取並沒有那麼多的寫
  • 工作量不能安全地崩潰
  • 當緩慢/差勁的查詢運行時,表級鎖定會導致惡意的情況

對於我現在工作的任何新項目,我幾乎肯定會選擇InnoDb。你的db崩潰的可能性較小,你可以利用事務並假設你在其上託管的服務器上有一塊相當可觀的內存(RAM最近很便宜),那麼你應該得到非常好的性能的。 InnoDb在性能調整方面更加複雜,但幸運的是,它可以爲您帶來開箱即用的愉快體驗。

+0

我編輯了我的問題..租賃答案在讀寫的細節...正如他們所說MyIsam更好地讀取... – user481913 2011-04-26 20:30:03

+0

我仍然會與InnoDb一起運行,並且如果將來您希望進一步提高性能只讀的一面在模板或數據層爲顯示的廣告實現某種緩存層。 – 2011-04-26 20:34:13

3

我更喜歡InnoDB,因爲它更像是一個「真實」的數據庫。此鏈接提供了更多的細節:

http://www.mikebernat.com/blog/MySQL_-_InnoDB_vs_MyISAM

選擇報價:

「的InnoDB是事務安全意義的數據的完整性得以維持整個查詢過程的InnoDB還提供行鎖定,而不是。表鎖定,意思是當一個查詢忙於更新或插入一行時,另一個查詢可以同時更新不同的行,這些功能提高了多用戶併發性和性能。「

大多數的InnoDB的特點歸結爲數據的完整性,總是一件好事:)

+0

我編輯我的問題..租賃答案讀取和寫入的細節... – user481913 2011-04-26 20:29:08

+0

謝謝... 1 upvote for you :) – user481913 2011-04-27 18:46:32

0

總之,總結: *的MyISAM,如果你正在尋找的性能。 * InnoDB,如果你正在尋找健壯性(交易,外鍵)。

我總是喜歡健壯性而不是性能,在項目開始時更是如此。所以從InnoDB開始。一旦你的網站足夠成功,你可以考慮MyISAM。

+2

如果有人對MyISAM和InnoDB之間的某些實際性能表現感興趣:http://www.mysqlperformanceblog.com/2007/01/ 08/innodb的-VS-的myisam-VS-鶻的基準部分-1 /。換句話說,MyISAM並不總是更快,事實上InnoDB在很多領域都擊敗了MyISAM。 – rzetterberg 2011-04-26 19:34:27