Эффективное решение для хранения множества маленьких целых чисел - PullRequest
0 голосов
/ 18 декабря 2018

Я собираюсь сгенерировать набор данных, который будет содержать около 7 * 10 ^ 11 целых чисел.Каждое целое число будет в диапазоне 0-1000.В несжатом виде потребуется около 14 ТБ (короткие целые числа).

Существует ли эффективное решение для базы данных со встроенным сжатием для такого рода информации?Лучше хранить его в двоичном виде?

РЕДАКТИРОВАТЬ: записи должны храниться в порядке.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Вы храните только целые числа или что-то еще?

Почему бы вам не создать таблицу с двумя столбцами:

  • Число: от 0 до 1000
  • Подсчет: сколько раз это было в наборе

Есть ли у вас какие-то неустановленные требования, например, необходимость держать их в порядке?

0 голосов
/ 18 декабря 2018

Хранилище из 10 битов будет охватывать целое число до 1024, что больше, чем ожидаемое максимальное значение 1000. Таким образом, вы можете использовать многобитовый столбец, который имеет ширину только 10. Это уменьшит вашу памятьтолько 875 ГБ вместо 14 ТБ.

В Postgres есть тип BIT, который должен работать здесь.Я ожидаю, что большинство баз данных будет иметь что-то похожее на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...