簡體   English   中英

我可以在MySQL數據庫上將某些表與InnoDB引擎一起使用,並將某些表與MyIsam一起使用嗎?

[英]Can i use some tables with InnoDB engine and some with MyIsam on my MySQL database?

我讀到Innodb最好在同時獲取大量插入記錄的表上使用。 我的應用程序每秒獲得約50條記錄。 因此,對於這些表,我應該使用Innodb,對嗎?

另一方面,我有一些僅用於選擇的表,它們很少更新或幾乎沒有新插入。 選擇MyIsam更快嗎? 如果是這樣,最好將一些表留給MyIsam,將一些表留給Innodb,還是應該將所有表都使用同一引擎?

我的應用程序還在要傳遞給Innodb的表上進行了大量搜索。 我該怎么辦 ?

您可以檢查以下內容:

使用MyISAM的原因:

  • 表格對於選擇繁重的負載確實非常快
  • 表級鎖限制了寫入密集型多用戶環境的可伸縮性。
  • 最小的磁盤空間消耗
  • 全文索引
  • 合並和壓縮表。

使用InnoDB的原因:

  • ACID交易
  • 行級鎖定
  • 一致的讀取–使您可以實現出色的讀寫並發性。
  • 主鍵群集–在某些情況下可提供出色的性能。
  • 外鍵支持。
  • 索引頁和數據頁都可以緩存。
  • 自動崩潰恢復–萬一MySQL關閉不干凈,InnoDB表仍然會
  • 恢復到一致狀態-無需MyISAM之類的支票維修。 所有更新都必須通過事務引擎
    InnoDB,通常會降低-與
    非事務性存儲引擎。

這里引用

最后一部分:

記得! 可以在同一數據庫中混合表類型! 實際上,它是推薦的並且經常需要。 但是,請務必注意,如果在連接兩種類型時遇到性能問題,請嘗試將一種轉換為另一種,看看是否可以解決。 經常不會發生此問題,但是已經報告過。

這里引用

我希望足夠了:D

是的,可以,但是除非有嚴重的性能瓶頸,否則我只會選擇InnoDB。

同樣的問題

MySQL論壇

簡而言之,您可以混合並匹配您的內心滿足感。

請記住以下幾點:

InnoDB是ACID投訴。 因此,您需要使用InnoDB的任何ACID功能。 MyISAM不支持很多東西,例如外鍵約束。

現在,速度很難精確量化。 根據執行路徑,您可能會獲得非常大或非常小的速度差異。

測試並檢查此處是否有正確或錯誤的答案。

暫無
暫無

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

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