2012-11-07 63 views
1

我有一些文本數據,我想存儲在MySQL數據庫。我目前有數據存儲在一個變量作爲一個字符串。壓縮字符串數據存儲和檢索

我擔心表格會變得相當大,因爲我對每行的文本數據量很大。

因此,什麼是以理想的存儲和檢索格式壓縮這個字符串數據的最簡單的方法(最好是在函數中構建的php)?

+0

什麼數據類型是您存儲數據的列? – Cez

+0

也許關於另一個主題的答案可能會幫助你: http://stackoverflow.com/questions/6733659/best-way-to-compact-a-string-in-php-that-c​​an-be-decoded-to-其原始格式 –

+0

數據類型爲TEXT – user1294886

回答

2

你可以GZIP字符串與GZEncode

這是非常標準的,因此如果您願意,應該可以從其他語言中翻轉。

我會建議存儲一個Base64版本的結果。

1

如果你使用的是InnoDB,你可以在整個表上啓用壓縮,這完全不影響你的代碼。

ALTER TABLE database.tableName ENGINE='InnoDB' ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; 

您可以更改KEY_BLOCK_SIZE較小的值,以獲得更多的壓縮(取決於數據),但是這會增加更多的開銷到CPU。 測試了一系列表後,我發現KEY_BLOCK_SIZE爲8可以很好地平衡壓縮性能。