Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk memampatkan dan menyahmampat data dalam MySQL?

Bagaimana untuk memampatkan dan menyahmampat data dalam MySQL?

WBOY
WBOYasal
2023-07-30 13:43:482698semak imbas

MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas yang menyokong fungsi pemampatan dan penyahmampatan data. Dalam storan dan pemprosesan data berskala besar, pemampatan data boleh mengurangkan penggunaan ruang storan dengan ketara dan meningkatkan kecekapan penghantaran data. Artikel ini akan memperkenalkan cara melaksanakan pemampatan dan penyahmampatan data dalam MySQL, dan memberikan contoh kod yang sepadan.

1. Mampatkan data

MySQL menyediakan pelbagai algoritma pemampatan, seperti LZ4, Zlib, Snappy, dll. Dalam MySQL 5.7.17 dan versi yang lebih baru, enjin storan InnoDB menyokong penggunaan algoritma Zlib untuk memampatkan data baris secara lalai. Pemampatan data boleh didayakan melalui langkah berikut:

  1. Konfigurasikan parameter pemampatan InnoDB

Dalam fail konfigurasi MySQL my.cnf atau my.ini, cari bahagian [mysqld] dan tambah konfigurasi berikut:

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

Di mana , innodb_file_format mesti ditetapkan kepada format Barracuda, dan innodb_file_per_table dan innodb_file_compression kedua-duanya perlu ditetapkan kepada HIDUP. Kemudian mulakan semula perkhidmatan MySQL untuk membuat konfigurasi berkuat kuasa.

  1. Mencipta Jadual Mampat

Mampatan boleh didayakan dengan menggunakan pilihan ROW_FORMAT=COMPRESSED semasa membuat jadual. Contohnya, cipta jadual bernama pekerja dan mampatkan data barisnya:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
) ROW_FORMAT=COMPRESSED;
  1. Mampat jadual sedia ada

Jika jadual telah dibuat, tetapi mampatan tidak didayakan, anda boleh menggunakan pernyataan ALTER TABLE untuk memampatkan jadual. Contohnya, untuk memampatkan jadual pekerja:

ALTER TABLE employees ROW_FORMAT=COMPRESSED;

2. Nyahmampat data

MySQL akan secara automatik menyahmampat data yang dimampatkan semasa membuat pertanyaan, dan pengguna tidak perlu melakukan operasi tambahan apabila membuat pertanyaan.

3. Kesan prestasi pemampatan dan penyahmampatan data

Mampatan dan penyahmampatan data akan memberi kesan tertentu ke atas prestasi sistem. Operasi mampatan menggunakan sumber CPU, manakala operasi penyahmampatan mengurangkan prestasi pertanyaan. Oleh itu, apabila menggunakan ciri pemampatan data, pertukaran harus dibuat berdasarkan situasi sebenar.

4. Contoh kod

Berikut ialah contoh kod yang menggunakan MySQL untuk pemampatan dan penyahmampatan data:

-- 创建压缩表
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;

Dalam contoh di atas, jadual bernama pekerja pertama kali dibuat dan data barisnya dimampatkan. Kemudian dua keping data telah dimasukkan dan data telah ditanya melalui pernyataan SELECT. MySQL secara automatik akan menyahmampat data yang dimampatkan semasa pertanyaan dan mengembalikan data asal.

Ringkasan:
Dalam MySQL, anda boleh mendayakan pemampatan data dengan mengkonfigurasi parameter InnoDB dan mencipta jadual termampat menggunakan pilihan ROW_FORMAT=COMPRESSED. Data yang dimampatkan dinyahmampat secara automatik apabila ditanya. Dalam penggunaan sebenar, kesan pemampatan dan penyahmampatan ke atas prestasi sistem perlu ditimbang. Di atas ialah pengenalan dan contoh kod yang sepadan tentang cara melaksanakan pemampatan dan penyahmampatan data dalam MySQL.

Atas ialah kandungan terperinci Bagaimana untuk memampatkan dan menyahmampat data dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn