Mysql

我需要什麼儲存引擎——Mysql?

  • August 27, 2015

我設計了一個數據庫,並最終決定哪種儲存引擎更適合我的情況。

我估計在最初的幾年裡,我將擁有大約 100,000 到 500,000 個使用者。一些使用者還可以有多個文章、評論等。使用者的數量最多可以達到 10,000,000。嗯,我只是估計。

我打算為我使用 BIGINT,user_id或者在某種情況下,我可能不得不走一條不同的路線,將 user_id 儲存為像“000123456789”這樣的字元串。我還沒有真正決定。

我的 CRUD 操作估計是這樣的:

創建 15%

讀取 60%

更新 20%

刪除 5%

所以我的重點是閱讀和更新。

如果你想要一個合適的數據庫,那麼你應該選擇 innodb——它支持 ACID 事務、引用完整性和更小粒度的鎖定。

myISAM 在許多只讀案例中更快,但是:

  • 除非您在應用程序設計中非常小心,否則缺乏對事務安全的支持可能會在多使用者情況下導致多個更新同時發生的損壞
  • 缺乏外鍵支持會從您的軍械庫中刪除有價值的數據完整性保護
  • 對於涉及大量插入和更新操作的案例,寫入導致全表鎖定的事實可能會導致大量性能問題。

如果您不指定儲存引擎,則 innodb 目前是預設選擇,除非您正在執行舊的或配置錯誤的 mysql 實例(myisam 曾經是預設值)。

**更新:**正如 akuzminsky 在評論中提到的,myISAM 可能不再是任何現實世界工作負載的更好表現者。快速搜尋“innodb myisam benchmarks”似乎表明情況就是如此。

引用自:https://dba.stackexchange.com/questions/112280