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

Tipe data apa yang harus dipilih json atau jsonb atau teks

Dengan asumsi Anda berbicara tentang JSON yang sebenarnya dan ketat (tanpa kebiasaan seperti kunci yang tidak dikutip)...

json tidak terlalu berbeda dengan text . Itu tidak banyak membantu selain memvalidasi JSON .

jsonb adalah binatang yang berbeda dibandingkan dengan keduanya:ini adalah struktur data lengkap dengan format internalnya sendiri yang memiliki lebih banyak operasi yang tersedia dalam pencarian. Misalnya json tidak memiliki = . yang berlaku (operator kesetaraan). jsonb memiliki. (text juga, meskipun secara semantik berbeda.)

Ini jauh lebih masuk akal untuk diindeks, tetapi harus diubah bolak-balik selama membaca dan menulis.

Mengingat itu, jsonb sepertinya bukan pilihan yang bagus di sini.

... Jadi hanya ada satu keputusan yang tersisa untuk dibuat:

Apakah Anda ingin memastikan bahwa database Anda hanya berisi nilai JSON yang valid di kolom Anda? Di tingkat basis data? Atau apakah Anda memercayai setiap klien database itu (biasanya aplikasi server) untuk hanya menyediakan data yang valid?

json adalah pilihan yang relatif aman. Menggunakan text secara teoritis dapat meningkatkan kinerja dengan margin yang dapat diabaikan karena tidak adanya validasi, tetapi Anda hanya akan mendapatkan angka tertentu dengan melakukan pembandingan. Tetapi itu tidak akan memiliki perlindungan terhadap nilai non-JSON, dan bug yang tidak disengaja di klien dapat luput dari perhatian. Uji secara bertanggung jawab!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dua SQL LEFT JOINS menghasilkan hasil yang salah

  2. Bagaimana cara menulis batasan mengenai jumlah baris maksimum di postgresql?

  3. Mengapa saya mendapatkan sintaks input yang tidak valid untuk tipe integer di postgresql saat mengimpor CSV?

  4. Gabungkan 2 kolom menjadi satu kolom SQL

  5. MIN() Fungsi di PostgreSQL