2012-11-14 50 views
0

基本上我有一個lang表,其中列pg VARCHAR(20),id VARCHAR(20),en (TEXT),ru (TEXT)爲我的網站的多語言支持和在99.999%的情況下數據將被從表中讀取而不是被寫入。我聽說MyISAM在面向讀取的表上表現比InnoDB更好;如果該表是MyISAM還是InnoDB,考慮到只有pg列用作WHERE子句?在幾乎只讀的表格中,MyISAM會更好嗎?

回答

1

前言:我不是DBA。

我認爲MyISAM的主要優點是,它將實際索引您指定的字段,而不是將每個指定索引編入強制自動生成的主鍵ID(La InnoDB)。這裏最大的好處就是如果你想在索引(pg,en,ru)上包含多個字段(如pg,en,ru)上的單個索引,MyISAM實際上可以創建一個索引,而不是將每個索引編入id,並將三個查找作爲較慢的等價索引。

在你的情況,如果你只是想在一個領域的搜索,你可能會得到的MyISAM適度的性能提升,因爲它會只需要看看那一個字段檢索你行。 InnoDB會從你的字段獲得一個id列表,然後通過id檢索行。無論如何,這幾乎是它的優化。

沒有一個明顯的優勢,我會做任何更清潔或更容易。如果你真的想知道答案,你可能需要對它進行基準測試。

再說一遍,我不是DBA,所以也許我在這個方面不錯!

+0

感謝您的洞察力。 :) –