Как включить сжатие данных в MongoDB - PullRequest
0 голосов
/ 06 января 2020

В MongoDB WiredTiger предоставляет возможность сжатия Zlib.

Чтобы включить параметр сжатия Zlib, я создал коллекцию, используя следующий код.

db.createCollection( "questions", { storageEngine: {
                   wiredTiger: { configString: "blockCompressor=zlib" }}})

Я провел несколько простых тестов для измерения производительности сжатия и использовал следующие наборы данных, хранящие строки

{
'_id': <ObjectID>,
'question_id': <Five character string>,
'question': <My question>
}

Я создал еще одну коллекцию с любым параметром сжатия, используя следующий код.

db.createCollection( "questions")

Измерил размер данных, используя следующий комментарий

db.stats(1024*1024).dataSize + db.stats(1024*1024).indexSize

Но я не могу в состоянии увидеть разницу сжатия между этими двумя коллекциями. Я сослался на следующие ссылки для достижения моего процесса.

https://www.mongodb.com/blog/post/new-compression-options-mongodb-30

https://scalegrid.io/blog/enabling-data-compression-in-mongodb-3-0/

1 Ответ

0 голосов
/ 07 января 2020

Не используйте dataSize для этого сравнения, поскольку это несжатый размер. Вместо этого используйте storageSize.

Используя MongoDB 4.2.2, например:

// create collections
> db.createCollection('snappy')
> db.createCollection('zlib', {storageEngine: {wiredTiger: {configString: 'block_compressor=zlib'}}})

// insert a compressible document into both collections
> doc = {_id:0, text:<a paragraph of text>}
> db.snappy.insert(doc)
> db.zlib.insert(doc)

// storage size comparison
> db.snappy.stats().storageSize
20480
> db.zlib.stats().storageSize
4096

// data size comparison
> db.snappy.dataSize()
697
> db.zlib.dataSize()
697

Таким образом, размер хранилища zlib намного меньше, чем по умолчанию (snappy), но размер данных одинаков между ними.

Примечание : Если вы все еще используете его, MongoDB 3.0 очень сильно устарел и больше не поддерживается с февраля 2018 . Пожалуйста, используйте более свежую версию (последняя на январь 2020 года - 4.2.2).

...