2012-02-02 118 views
0

我们在名为'conteny'的字段中存储完整的html页面。现在这个表就像一个档案,我们很少使用它。 'content'字段现在是'longtext'类型,我想知道哪些是我们可以压缩的最佳方式,并保留此表的数据,因为它占用了大量空间。压缩存储在mysql中的数据

我试着简单地在php的内容字段上使用gzcompress函数,但没有工作。

$content = gzcompress($content,9); 

也试过,但不起作用:

update posts_content set content = COMPRESS(content) 

任何想法最新最好的方式做到这一点又如何呢?

另一个问题在这里Is mysql automatically compressing the database?谈论INNODB,但我们使用MYISAM,并可能转移到INNODB作为最后的手段。

感谢你

+0

看看这个问题 - http://stackoverflow.com/questions/8228950/compressing-text-before-storing-it-in-the-database – Devart 2012-02-02 14:03:30

+0

如果字段类型是TEXT,那么压缩的二进制数据很可能被字符集转换损坏。使用BLOB类型来存储原始二进制数据 - 它们不受字符集转换的限制。 – 2012-02-02 14:23:31

回答

1

使用压缩时,结果是二进制文本。您不应该尝试将结果存储在文本列中。 BLOB列应与gzcompress方法一起使用。