Menggunakan JSONB di PostgreSQL
Pendahuluan
PostgreSQL mendukung tipe data JSON dan JSONB untuk menyimpan dan mengelola data berformat JSON. JSONB (Binary JSON) lebih disarankan karena lebih cepat dalam pencarian dan manipulasi data dibandingkan JSON biasa.
Perbedaan JSON dan JSONB
Fitur | JSON | JSONB |
---|---|---|
Penyimpanan | Disimpan dalam format teks | Disimpan dalam format biner |
Kecepatan Query | Lambat, karena harus diurai setiap kali digunakan | Cepat, karena sudah diindeks dan dioptimalkan |
Dukungan Indeks | Tidak mendukung | Mendukung indeks GIN untuk pencarian cepat |
Urutan Key | Dipertahankan | Tidak dipertahankan |
Membuat Kolom JSONB
Untuk menggunakan JSONB, buat tabel dengan kolom bertipe JSONB:
CREATE TABLE produk (
id SERIAL PRIMARY KEY,
nama TEXT,
spesifikasi JSONB
);
Menyisipkan Data JSONB
Data dapat dimasukkan dalam format JSON:
INSERT INTO produk (nama, spesifikasi) VALUES
('Laptop', '{"prosesor": "Intel i7", "ram": "16GB", "storage": "512GB SSD"}');
Query JSONB
Untuk mengambil data dari kolom JSONB, gunakan operator ->>
atau ->
:
SELECT nama, spesifikasi->>'prosesor' AS prosesor FROM produk;
Mencari Data dalam JSONB
Gunakan operator @>
untuk mencari objek JSONB tertentu:
SELECT * FROM produk WHERE spesifikasi @> '{"ram": "16GB"}';
Indeks pada JSONB
Gunakan indeks GIN untuk mempercepat pencarian dalam JSONB:
CREATE INDEX idx_spesifikasi ON produk USING GIN (spesifikasi);
Mengupdate Data JSONB
Untuk memperbarui nilai tertentu dalam JSONB, gunakan jsonb_set
:
UPDATE produk SET spesifikasi = jsonb_set(spesifikasi, '{ram}', '"32GB"') WHERE nama = 'Laptop';
Kesimpulan
JSONB di PostgreSQL memberikan fleksibilitas dalam menyimpan data semi-struktur dengan performa yang lebih baik dibandingkan JSON biasa. Dengan penggunaan indeks dan query yang tepat, JSONB bisa menjadi solusi yang efisien untuk menyimpan data dalam format JSON.