2012-01-01 77 views
3

我的表条目很长,大约有10000个字符,所以我想知道是否需要自己压缩,例如使用gzip库,然后插入到mysqlmysql是否自动压缩数据库?

当前我正在使用MyISAM数据库格式。

谢谢!

回答

1

可以使用在CREATE TABLEALTER TABLE声明属性ROW_FORMAT=COMPRESSED, KEY_BLOCK_SIZE,或两者启用表压缩。根据选项的值的组合,InnoDB试图压缩每个页面

欲了解更多详情,请通过以下链接:

Enabling Compression for a Table

0

的mysql图书馆可能会做一些压缩(与CLIENT_COMPRESS标志mysql_real_connect),以尽量减少网络带宽,但据我所知的mysqld服务器程序将无法在磁盘上的数据进行压缩,除非要求(见Moshe's reply)。你可能不想在压缩数据内搜索。

顺便说一下,你应该使用InnoDB而不是MyISAM(这是不赞成使用的)。

+0

如果客户端和MySQL服务器在WAN上,并且问题是网络延迟/速度而不是HDD,则您的响应非常有用。 – 2012-01-01 13:25:52

0

启用您需要按照下面的步骤表压缩。

1)需要设置参数在mysqlconfig文件

SET GLOBAL innodb_file_per_table=1;SET GLOBAL innodb_file_format=Barracuda;

2)需要添加子句

ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE上创建或alter table命令。 你可以使用任何它们是可选的。 ALTER TABLE node ROW_FORMAT=compressed;