簡體   English   中英

mysql-MyISAM或InnoDB-連接速度與查找速度

[英]mysql - MyISAM or InnoDB - Join speed vs Lookup speed

在關閉之前,請先閱讀問題作為重復的pl。,因為對此有很多疑問,但至少我沒有找到想要的東西。

現在清楚的是:

 MyIsam is faster at searching strings (much faster)
 InnoDB is faster at joins (much faster)

所以我的問題是這樣的:我有以下設置:

兩個表,假設t1的blan idbla1bla2 ,..., blan 和t2具有列t1Idextra1extra2 ,..., extran

表1(t1)是InnoDB(需要進行事務處理,這很清楚)。 表2(t2)始終與t1一起使用(某些情況下是額外的數據),因此在t2出現的位置之間始終存在連接。 那將指向InnoDB。 問題是在連接之后,還將(總是)搜索其中一列內的字符串。 這將指向MyISAM。

獲得時間的時間顯然是加入時間和搜索時間之間的總和。 問題是,如果我優化一個,我會使另一個變慢。

值得一提的事實:表確實非常大,t2永遠不需要事務,行鎖或通常需要使用InnoDB的任何東西。

有什么更好的選擇? MyISAM還是InnoDB?

可以肯定地說的唯一方法是創建兩個表,向它們加載示例數據並衡量您的查詢。

通常,我建議您使用InnoDB:

  1. 由於InnoBD( http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html )中也提供MySQL 5.6全文搜索,因此我認為您將失去MyISAM快速字符串搜索的主要功能福利
  2. 使用MyISAM,您不僅會丟失行鎖定支持,而且還會丟失外鍵以及數據完整性,而且不要忘記MyISAM的“崩潰”

我會這樣:

在這里檢查免費的 mysql查詢分析器。

這樣,您可以看到加入和搜索的費用。 然后,您應該根據結果選擇格式! 如果搜索“花費”更多,則選擇mYisam。

除此之外: 這里有一個很好的比較,它可以幫助您找到最佳的選擇,甚至取決於插入的數量等。

希望能幫助到你。 很難說:一個更好。 在一般情況下,它實際上取決於您的查詢,您的數據等。

暫無
暫無

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

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