PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Penjelasan JSONB diperkenalkan oleh PostgreSQL

Pertama, hstore adalah modul contrib, yang hanya memungkinkan Anda untuk menyimpan pasangan kunci => nilai, di mana kunci dan nilai hanya dapat berupa text s (namun nilainya dapat berupa sql NULL s juga).

Keduanya json &jsonb memungkinkan Anda untuk menyimpan nilai JSON yang valid (didefinisikan dalam spesifikasinya).

F.ex. ini adalah representasi JSON yang valid:null , true , [1,false,"string",{"foo":"bar"}] , {"foo":"bar","baz":[null]} - hstore hanya subset kecil dibandingkan dengan kemampuan JSON (tetapi jika Anda hanya membutuhkan subset ini, tidak apa-apa).

Satu-satunya perbedaan antara json &jsonb adalah penyimpanan mereka:

  • json disimpan dalam format teks biasa, sedangkan
  • jsonb disimpan dalam beberapa representasi biner

Ada 3 konsekuensi utama dari ini:

  • jsonb biasanya membutuhkan lebih banyak ruang disk untuk disimpan daripada json (kadang tidak)
  • jsonb membutuhkan lebih banyak waktu untuk membangun dari representasi inputnya daripada json
  • json operasi berlangsung secara signifikan lebih banyak waktu daripada jsonb (&penguraian juga perlu dilakukan setiap kali Anda melakukan beberapa operasi di json nilai yang diketik)

Ketika jsonb akan tersedia dengan rilis stabil, akan ada dua kasus penggunaan utama, ketika Anda dapat dengan mudah memilih di antara keduanya:

  1. Jika Anda hanya bekerja dengan representasi JSON di aplikasi Anda, PostgreSQL hanya digunakan untuk menyimpan &mengambil representasi ini, Anda harus menggunakan json .
  2. Jika Anda melakukan banyak operasi pada nilai JSON di PostgreSQL, atau menggunakan pengindeksan pada beberapa bidang JSON, Anda harus menggunakan jsonb .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pesan kesalahan SQLAlchemy yang aneh:TypeError:objek 'dict' tidak mendukung pengindeksan

  2. Cara Mendapatkan Waktu Saat Ini di PostgreSQL

  3. Menggunakan row_to_json() dengan gabungan bersarang

  4. Menyimpan json, jsonb, hstore, xml, enum, ipaddr, dll gagal dengan kolom x bertipe json tetapi ekspresi bertipe karakter bervariasi

  5. Ikhtisar PostgreSQL Query Caching &Load Balancing