簡體   English   中英

在MySQL數據庫中使用不同的表類型是一種好習慣嗎?

[英]Is it good practice to have different table types in a database with MySQL?

我正在開發一個PHP游戲,當然我需要創建大約1000個不同的表來存儲各種類型的數據。 我聽說,如果我錯了,請糾正我,InnoDB對於因為與MyISAM的表鎖定相反的行鎖定而會更新很多的表更好。 但是MyISAM選擇速度更快。

我的問題是,我應該堅持使用一種表格類型,還是根據表格的需要混合搭配?

我的問題是,我應該堅持使用一種表格類型,還是根據表格的需要混合搭配?

混合可以。

MyISAM對於某些查詢更快,並且支持FULLTEXTSPATIAL索引,而InnoDB是事務性的並且更加並發。

在我正在咨詢的數據庫項目中,出於這些目的,存在各種表格。

這取決於您的要求。 如果你需要行級鎖定,外鍵約束等,你應該去InnoDB,但如果你不需要它,你可以去MyISAM。 一般來說,InnoDB在大多數情況下都是可行的,但沒有什么能阻止你為你的桌子選擇多種類型的引擎, 這就是MySQL的美妙之處

是的,如果需要,您可以將MyISAM和InnoDB混合在同一個數據庫中,沒有任何問題

雖然你可以混合使用表格,但我完全堅持使用InnoDB。 雖然MyISAM可以更快地進行某些查詢,但如果進行適當調整,InnoDB通常會更快。 如果通過主鍵查詢,InnoDB將為MyISAM提供速度,因為InnoDB以主鍵順序存儲數據。 二級索引的MyISAM可能更快。

MyISAM不支持事務,如果你有1000個表,你可能會在一個操作中更新幾個表,所有這些更新都應該在一個事務中完成(或者當並發變為當游戲繁忙或數據庫滯后時出現問題!)。

堅持使用一種表類型也可以使數據庫計算機上的內存管理更容易。 InnoDB獲取用於緩存的專用RAM,而MyISAM依賴於OS文件系統緩存。

使用MyISAM在任何類型的繁忙網站上進行全文搜索都會讓您感到悲傷。 相反,使用Sphinx搜索

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM