我的表条目很长,大约 10000 个字符,所以我想知道我是否需要自己压缩它,例如使用 gzip 库,然后再插入mysql
?
目前我正在使用MyISAM数据库格式。
谢谢!
InnoDB
支持数据压缩:
http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-compression-usage.html
可以在 CREATE TABLE
和 ALTER TABLE
语句中使用属性 ROW_FORMAT=COMPRESSED, KEY_BLOCK_SIZE
或同时使用两者来启用表压缩。根据选项值的组合,InnoDB
尝试压缩每个页面
有关更多详细信息,请通过以下链接:
为表启用压缩
mysqlclient库可能会做一些压缩(CLIENT_COMPRESS
标志mysql_real_connect(以最小化网络带宽,但AFAIK mysqld
服务器程序不会压缩磁盘上的数据,除非被问到(参见Moshe的回复(。而且您可能不想在压缩数据中搜索。
顺便说一句,你应该使用InnoDB而不是MyISAM(这是不推荐使用的(。
要在表上启用压缩,您需要按照以下步骤操作。
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 node ROW_FORMAT=compressed;