sql >> Database >  >> NoSQL >> MongoDB

Gegevenscompressie inschakelen in MongoDB 3.0

MongoDB 3.0 met de WiredTiger-opslagengine stelt u in staat om de gegevens die in uw database zijn opgeslagen transparant te comprimeren. Dit is een redelijk opwindende en nuttige functie die kan worden gebruikt om het schijfruimtegebruik van uw snelgroeiende gegevens te verminderen. Standaard gebruikt bedrade tijger de 'Snappy' blokcompressie-engine voor alle collecties. U kunt compressie standaard uitschakelen met de volgende opties in het MongoDB-serverconfiguratiebestand.

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

Het compressie-algoritme kan tijdens het maken van het cluster worden opgegeven op het verzamelingsniveau. Hier is een voorbeeld van het maken van een verzameling met 'zlib'-compressie:

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

MongoDB WiredTiger-opslagengine biedt twee opties voor compressie:pittig en zlib. Er is in wezen een afweging tussen de mate van compressie en de hoeveelheid CPU-belasting die moet worden gedecomprimeerd. 'Zlib' bereikt veel meer compressie en is dienovereenkomstig minder performant. ‘Snappy’ streeft naar ‘streft naar zeer hoge snelheden en redelijke compressie’.

We hebben enkele eenvoudige onwetenschappelijke tests uitgevoerd om de compressieprestaties te meten. We gebruikten een van de datasets waarin tekenreeksen werden opgeslagen waarvan we dachten dat ze goed zouden worden gecomprimeerd. Hier is de basisstructuur van elk document:


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

We hebben ongeveer 5000 van deze documenten (ongeveer 5 GB aan gegevens) ingevoegd en de resultaten waren behoorlijk indrukwekkend. Zlib bereikt een aanzienlijke hoeveelheid compressie. Snappy bereikt ook een behoorlijke hoeveelheid compressie met weinig of geen belasting van het systeem:

Zlib Snappy ongecomprimeerd
Gegevensgrootte (MB) 5000.5 5000.5 5000.5
Opslaggrootte (MB) 19.62 254.37 5019

Zoals altijd moet u enkele tests uitvoeren om inzicht te krijgen in de prestatieverbeteringen voor uw dataset. Hier zijn enkele meer gedetailleerde benchmarkstudies over compressieprestaties en afwegingen:

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. Mooie afdruk in MongoDB-shell als standaard

  2. mangoest:vind gegevens door een reeks modellen te herhalen

  3. Meteoor zonder mongo

  4. Waarom heeft Mongoose zowel schema's als modellen?