0

情報:私は学校の図書館用のPHPスクリプトを開発しています。PHPスクリプトはローカルホスト(XAMPP)で実行され、インターネットには公開されません。

私が試したことは?

  CREATE TABLE IF NOT EXISTS `books` (
  `Id` int(11) DEFAULT NULL,
  `url` varchar(255) DEFAULT NULL,
  `title` varchar(255) DEFAULT NULL,
  `description` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;

データベースの合計サイズは100GBです。このプロジェクトのビッグデータサイズは100GBです。実際、10 GB〜20GBが最適です。

a-)mysqlに保存する前にテキストデータを圧縮する方法はありますか?20 GBにしたい b-)データをファイルに保存したい。ファイルストレージによってデータサイズが20GBになった場合、それは私にとって素晴らしいことです。それを達成する方法はありますか?

4

1 に答える 1

5

MySQL COMPRESS()関数を使用してデータを圧縮して保存し、結果を取得するときにUNCOMPRESS()を使用できます。これにより、その列に挿入されたデータが圧縮されます。

または、MySQLに挿入する前にPHP側でデータを圧縮することもできます。これを行うには、圧縮を使用する関数gzdeflate/圧縮gzinflateに使用する関数/ (MySQL関数が使用するものと同じです)。これらを使用するには、PHPがzlibサポート()で構築されている必要があります。gzipgzcompressgzuncompresszlib--with-zlib

これらがどれほど役立つかは、データベースが非常に大きい理由によって異なります。何億ものレコードがあるのに対して、大きな列を持つレコードが少ないためである場合、特定の値を圧縮しても大きな違いはありません。大きなデータがある場合にのみ、データベースサイズの縮小が見られます。テーブル構造の外観から、大量のストレージを必要とする列はありません。

ROW_FORMAT=COMPRESSEDが行われ、その影響についての詳細は、InnoDB圧縮の使用法を参照してください。

于 2012-09-21T19:18:51.777 に答える