2011-11-07 121 views
2

我參考了這個Store GZIP:ed text in mysql?在mysql中存儲gziped字符串

我想序列化的會話存儲在數據庫中(他們實際上是存儲在一個分佈式緩存池,但我有這個作爲故障保護)。我gziping /解壓從PHP。 我想問下:

1)這是一個很好的舉措?我這樣做是爲了避免使用mediumtext,因爲數據可能大於text。我想/我希望我會有很多會議存儲在那裏。在這種情況下,它是否值得gzip?表是MyISAM。

2)我需要將表字段的編碼設置爲二進制嗎?或者只有這樣做,如果我有一個完整的gziped文件?

3)將序列不好動,我應該使用json_encode代替(由於更小的尺寸我猜)的?

感謝,

+1

剛一說明:即使你存儲一些數據,將完美地融入在MEDIUMTEXT TEXT相反,在存儲空間的差異也只是一個額外的字節作爲MEDIUMTEXT要求* L * + 3個字節相反* L * + TEXT需要2個字節。有關更多信息,請參見[數據類型存儲要求](http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html)。 – Gumbo

+0

+1感謝提示 – alinn

+0

您的平均會話有多大?如果只有「少量」字節,則不會節省存儲空間,但會在(相對)無用的壓縮開銷中損失一點點。 –

回答

4

您應該使用MEDIUMBLOB場,而不是MEDIUMTEXT。 BLOB沒有編碼,因爲它們是原始字節流。

+0

+1我認爲它比二進制更好的溶劑,謝謝 – alinn