1

私はmysqlに少し慣れていないので、圧縮がどのように機能するかわかりません。基本的に、私はmysqlにロードしている生の20GBファイルを持っています。通常2〜4GBのgzipを使用して圧縮する場合はわかります。だから私の質問は、mysqlが使用している圧縮は何ですか(そして私はそれを変更できますか?)テーブル自体に保存されているデータにのみ適用されますか、それともテキストに適用されますか?

これが私のテーブルです:

CREATE TABLE my_data (
  `ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `DATA` text NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;

私の理解はDATAテーブル自体には保存されていませんが、テーブルへの参照ポインタだけが保存されています。圧縮がデータ自体に適用されるのか、それとも参照ポインタだけに適用されるのか疑問に思います。

4

1 に答える 1

1

mysqlドキュメントから-

「テーブルがCOMPRESSED形式の場合、オーバーフローページに書き込まれるすべてのデータは「そのまま」圧縮されます。つまり、InnoDBはデータ項目全体にzlib圧縮アルゴリズムを適用します。データ以外の圧縮オーバーフローページには、非圧縮ヘッダーと特に、ページチェックサムと次のオーバーフローページへのリンクで構成されるトレーラー。したがって、データが高度に圧縮可能である場合、テキストデータの場合によくあるように、長いBLOB、TEXT、またはVARCHAR列でストレージを大幅に節約できます。 (ただし、以前に圧縮された画像ではありません)。」

圧縮アルゴリズムがデータに適用されていると確信しています。

于 2012-06-07T02:48:30.920 に答える