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

Mengaktifkan Kompresi Data di MongoDB 3.0

MongoDB 3.0 dengan mesin penyimpanan WiredTiger memungkinkan Anda mengompresi data yang disimpan dalam database Anda secara transparan. Ini adalah fitur yang cukup menarik dan berguna yang dapat digunakan untuk mengurangi penggunaan ruang disk dari data Anda yang berkembang pesat. Secara default, wired tiger menggunakan mesin kompresi blok 'Snappy' untuk semua koleksi. Anda dapat mematikan kompresi secara default menggunakan opsi berikut di file konfigurasi server MongoDB.

storage:
  engine: wiredTiger
  wiredTiger:
    collectionConfig:
      blockCompressor: none

Algoritma kompresi dapat ditentukan pada tingkat pengumpulan selama pembuatan cluster. Berikut adalah contoh membuat koleksi dengan kompresi 'zlib':

db.createCollection( "test", {storageEngine:{wiredTiger:{configString:'block_compressor=zlib'}}} );

Mesin penyimpanan MongoDB WiredTiger menyediakan dua opsi untuk kompresi – tajam dan zlib. Pada dasarnya ada tradeoff antara tingkat kompresi dan jumlah beban CPU untuk dekompresi. 'Zlib' mencapai lebih banyak kompresi dan dengan demikian kinerjanya lebih sedikit. 'Snappy' bertujuan untuk 'bertujuan untuk kecepatan yang sangat tinggi dan kompresi yang wajar'.

Kami menjalankan beberapa tes sederhana yang tidak ilmiah untuk mengukur kinerja kompresi. Kami menggunakan salah satu kumpulan data yang menyimpan string yang kami rasa akan terkompresi dengan baik. Berikut adalah struktur dasar dari setiap dokumen:


{
'_id': <ObjectID>,
'name': <Five character string>,
'value': <Random 1MB string>
}

Kami memasukkan sekitar 5000 dokumen ini (sekitar 5GB data), dan hasilnya cukup mengesankan. Zlib mencapai jumlah kompresi yang cukup besar. Snappy juga mencapai cukup banyak kompresi dengan sedikit atau tanpa beban pada sistem:

Zlib Cepat tidak terkompresi
Ukuran data (MB) 5000.5 5000.5 5000.5
Ukuran penyimpanan (MB) 19,62 254,37 5019

Seperti biasa, Anda perlu menjalankan beberapa pengujian untuk memahami peningkatan performa untuk kumpulan data Anda. Berikut adalah beberapa studi benchmark yang lebih mendetail tentang kinerja kompresi dan pengorbanan:

http://www.mongodb.com/blog/post/new-compression-options-mongodb-30
http://www.acmebenchmarking.com/2015/02/mongodb-v30-compression-benchmarks.html
https://comerford.cc/2015/02/04/mongodb-3-0-testing-compression/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Saya perlu mengambil objek MongoDB hanya dengan item array yang difilter

  2. Kueri MongoDB dengan $and dan Multiple $or

  3. Bagaimana cara mengizinkan data JSON bentuk bebas dalam dokumen Mongoose?

  4. Berurusan dengan perubahan skema di Mongoose

  5. cara mengunduh file yang disimpan di gridFS menggunakan nodeJS