ホームページ >データベース >mysql チュートリアル >MySQL でデータを圧縮および解凍するにはどうすればよいですか?

MySQL でデータを圧縮および解凍するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-07-30 13:43:482750ブラウズ

MySQL は、データの圧縮および解凍機能をサポートする、広く使用されているリレーショナル データベース管理システムです。大規模なデータの保存と処理では、データ圧縮によりストレージ容量の使用量が大幅に削減され、データ転送効率が向上します。この記事では、MySQL でデータの圧縮と解凍を実装する方法と、対応するコード例を紹介します。

1. データの圧縮

MySQL は、LZ4、Zlib、Snappy などのさまざまな圧縮アルゴリズムを提供します。 MySQL 5.7.17 以降のバージョンでは、InnoDB ストレージ エンジンは、行データを圧縮するための Zlib アルゴリズムの使用をデフォルトでサポートしています。データ圧縮は、次の手順で有効にできます。

  1. InnoDB の圧縮パラメータを設定します。

MySQL 設定ファイル my.cnf または my.ini で、[mysqld] を見つけます。 ] セクションを開き、次の設定を追加します:

[mysqld]
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_file_compression=ON

このうち、innodb_file_format を Barracuda 形式に設定し、innodb_file_per_table と innodb_file_compression の両方を ON に設定する必要があります。次に、MySQL サービスを再起動して、構成を有効にします。

  1. 圧縮テーブルの作成

圧縮は、テーブルの作成時に ROW_FORMAT=COMPRESSED オプションを使用することで有効にできます。たとえば、employees という名前のテーブルを作成し、その行データを圧縮します。

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
) ROW_FORMAT=COMPRESSED;
  1. 既存のテーブルを圧縮

テーブルが作成されていても圧縮が有効になっていない場合は、次のコマンドを使用できます。 ALTER TABLE ステートメントを使用してテーブルを圧縮します。たとえば、employees テーブルを圧縮するには:

ALTER TABLE employees ROW_FORMAT=COMPRESSED;

2. データの解凍

MySQL はクエリ時に圧縮データを自動的に解凍するため、ユーザーはクエリ時に追加の操作を実行する必要はありません。

3. データの圧縮と解凍によるパフォーマンスへの影響

データの圧縮と解凍は、システムのパフォーマンスに一定の影響を与えます。圧縮操作は CPU リソースを消費しますが、解凍操作はクエリのパフォーマンスを低下させます。したがって、データ圧縮機能を使用する場合は、実際の状況に基づいてトレードオフを行う必要があります。

4. サンプル コード

以下は、データの圧縮と解凍に MySQL を使用するサンプル コードです:

-- 创建压缩表
CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
) ROW_FORMAT=COMPRESSED;

-- 插入数据
INSERT INTO employees (id, name, age) VALUES (1, 'John', 25);
INSERT INTO employees (id, name, age) VALUES (2, 'Mary', 30);

-- 查询数据
SELECT * FROM employees;

上の例では、まずemployeesという名前のファイルが作成されます。 . table を作成し、その行データを圧縮します。次に、2 つのデータが挿入され、SELECT ステートメントを通じてデータがクエリされました。 MySQL はクエリ中に圧縮データを自動的に解凍し、元のデータを返します。

概要:
MySQL では、InnoDB のパラメータを設定することでデータ圧縮を有効にし、ROW_FORMAT=COMPRESSED オプションを使用して圧縮テーブルを作成できます。圧縮されたデータは、クエリ時に自動的に解凍されます。実際の使用では、システム パフォーマンスに対する圧縮と解凍の影響を比較検討する必要があります。上記は、MySQL でデータの圧縮と解凍を実装する方法の概要と対応するコード例です。

以上がMySQL でデータを圧縮および解凍するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。