MySQL は、データの圧縮および解凍機能をサポートする、広く使用されているリレーショナル データベース管理システムです。大規模なデータの保存と処理では、データ圧縮によりストレージ容量の使用量が大幅に削減され、データ転送効率が向上します。この記事では、MySQL でデータの圧縮と解凍を実装する方法と、対応するコード例を紹介します。
1. データの圧縮
MySQL は、LZ4、Zlib、Snappy などのさまざまな圧縮アルゴリズムを提供します。 MySQL 5.7.17 以降のバージョンでは、InnoDB ストレージ エンジンは、行データを圧縮するための Zlib アルゴリズムの使用をデフォルトでサポートしています。データ圧縮は、次の手順で有効にできます。
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 サービスを再起動して、構成を有効にします。
圧縮は、テーブルの作成時に ROW_FORMAT=COMPRESSED オプションを使用することで有効にできます。たとえば、employees という名前のテーブルを作成し、その行データを圧縮します。
CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(50), age INT ) ROW_FORMAT=COMPRESSED;
テーブルが作成されていても圧縮が有効になっていない場合は、次のコマンドを使用できます。 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 サイトの他の関連記事を参照してください。