2014-11-05 46 views
3

我在InnoDB表中有+10百萬篇文章(200至1000字)。當我與article領域工作的我只能用這種類型的查詢:在MySQL中存儲文本的最「空間有效」方式是什麼?

SELECT article,title,other_fields from table where id=123; 

什麼是最「有效空間」的方式存儲在MySQL中的文本?

現在表大小爲 100GB,我的目標是使盡可能少的沒有造成太大的性能折衷。

+0

SELECT不「存儲」。你的意思是「展示」? – 2014-11-05 19:48:45

+0

即時通訊不是原生的,但也許你誤解了這個問題? – mmswe 2014-11-05 19:52:42

+0

是的,代碼包含確實讓我失望,對不起。 – 2014-11-05 19:53:44

回答

1

MyISAM比InnoDB更加友好,您可以從那開始。

0

根據內容,您可能會使用聰明的無損壓縮算法獲得一些好的/有用的結果。除此之外,您可以將文本分組分組,並將其完全壓縮以獲得更好的結果,而不會顯着降低性能。

這都是關於空間/速度的比例。

2

正如其他人指出的,innodb compressed rows是一個選項。

雖然你需要確保你的file_format系統參數設置爲梭子魚。嘗試進行更改以在行格式爲缺省Antelope的情況下進行行格式壓縮時,可能會導致浪費表重建,只會給您提示行格式不受支持的警告。

我發現各種數據集上的壓縮不是很好,並給予了很多的CPU開銷,特別是傷害了連接參與的性能。

我一直在嘗試使用mysql的TokuDB存儲引擎,它似乎能以更快的速度提供更好的壓縮比,以及其他好處(如快速聯機模式更改)。

相關問題