2012-01-01 126 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;