MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Активиране на компресиране на данни в MongoDB 3.0

MongoDB 3.0 с механизма за съхранение на WiredTiger ви позволява прозрачно да компресирате данните, съхранявани във вашата база данни. Това е доста вълнуваща и полезна функция, която може да се използва за намаляване на използването на дисково пространство от вашите бързо нарастващи данни. По подразбиране кабелният тигър използва механизма за компресиране на блокове „Snappy“ за всички колекции. Можете да изключите компресията по подразбиране, като използвате следните опции в конфигурационния файл на сървъра на MongoDB.

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

Алгоритъмът за компресия може да бъде зададен на ниво колекция по време на създаването на клъстер. Ето пример за създаване на колекция с компресия „zlib“:

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

Двигателят за съхранение на MongoDB WiredTiger предоставя две опции за компресиране – snappy и zlib. По същество има компромис между степента на компресия и количеството натоварване на процесора за декомпресиране. „Zlib“ постига много повече компресия и съответно е по-малко производителен. „Snappy“ има за цел „цели към много високи скорости и разумна компресия“.

Проведохме някои прости ненаучни тестове, за да измерим ефективността на компресията. Използвахме един от наборите от данни, съхраняващи низове, които смятахме, че ще се компресират добре. Ето основната структура на всеки документ:


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

Вмъкнахме около 5000 от тези документи (около 5 GB данни) и резултатите бяха доста впечатляващи. Zlib постига значително количество компресия. Snappy също постига доста компресия с малко или никакво натоварване на системата:

Zlib Бързък некомпресиран
Размер на данните (MB) 5000.5 5000.5 5000.5
Размер на хранилището (MB) 19,62 254,37 5019

Както винаги, трябва да проведете някои тестове, за да разберете подобренията в производителността за вашия набор от данни. Ето някои по-подробни сравнителни проучвания за производителността на компресия и компромисите:

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. Как да изхвърлите база данни в MongoDB от командния ред

  2. Mongoose сортира обобщения резултат

  3. Как да конвертирам свойство в MongoDB от текст към тип дата?

  4. Percona Live 2017 - Резюме на Severalnines

  5. MongoDB заявки с нулева стойност