MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

biaya kunci dalam database dokumen JSON (mongodb, elasticsearch)

Anda benar memperhatikan bahwa dokumen akan memiliki ukuran yang berbeda. Jadi Anda akan menghemat setidaknya 15 bytes per dokumen (60% untuk dokumen serupa) jika Anda memutuskan untuk mengadopsi skema kedua. Ini akan berakhir seperti 140MB untuk 10 million your catatan. Ini akan memberi Anda keuntungan berikut:

  • Penghematan HDD. Satu-satunya masalah adalah melihat harga HDD saat ini sebagian besar tidak berguna.
  • Penghematan RAM. Dibandingkan dengan hard disk, ini dapat berguna untuk pengindeksan. Dalam set kerja mongodb dari indeks harus sesuai dengan RAM untuk mencapai hasil yang baik kinerja . Jadi jika Anda akan memiliki indeks pada dua bidang ini, Anda tidak hanya akan menghemat 140MB ruang HDD tetapi juga 140MB ruang RAM potensial (yang sebenarnya terlihat).
  • I/O . Banyak kemacetan terjadi karena keterbatasan sistem input/output (kecepatan membaca/menulis dari disk terbatas). Untuk dokumen Anda, ini berarti bahwa dengan skema 2 Anda berpotensi dapat membaca/menulis twice as many documents per 1 detik.
  • jaringan . Dalam banyak situasi jaringan bahkan jauh lebih lambat dari IO, dan jika server DB Anda berada di mesin yang berbeda maka server aplikasi Anda, data harus dikirim melalui kabel. Dan Anda juga dapat mengirim data dua kali lebih banyak.

Setelah menceritakan tentang kelebihannya, saya harus memberi tahu Anda kerugian untuk kunci kecil:

  • keterbacaan database. Ketika Anda melakukan db.coll.findOne() dan melihat {_id: 1, t: 13423, a: 3, b:0.2} cukup sulit untuk memahami apa yang sebenarnya disimpan di sini.
  • keterbacaan aplikasi mirip dengan database, tetapi setidaknya di sini Anda dapat memiliki solusi. Dengan logika pemetaan, yang mengubah currentDate ke c dan price ke p Anda dapat menulis kode bersih dan memiliki skema pendek.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengapa luwak selalu menambahkan s di akhir nama koleksi saya?

  2. GSSException:Tidak ada kredensial valid yang diberikan (Tingkat mekanisme:Gagal menemukan Kerberos tgt)

  3. Tidak dapat terhubung ke mongoDB dengan Nodejs menggunakan Docker-compose

  4. java spring MappingJacksonJsonView tidak melakukan toString di mongodb ObjectId

  5. Buat pengguna MongoDB yang hanya dapat mengelola dokumen yang dibuatnya