@micronull

Как хранить большую таблицу с одинаковыми значениями?

Привет всем. Нужна помощь более опытных коллег.

Нужно создать таблицу куда будет заноситься большое количество записей с одинаковыми значениями.

Разных значений может быть десяток, а вот записей миллионы.

Как я понимаю, если создать простую таблицу, то она будет раздуваться на диске почем зря.

Как можно создать такую таблицу (или индекс для неё) так, чтоб на диске она занимала минимальное место?

В таблицу будут только заноситься данные. Выборку будут производить редко и вручную при необходимости. Скорость выборки не важна.

Спасибо!
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Вот например так: таблица справочник значений и основная таблица:
create table datavalues (
	id serial primary key,
  	value text -- json or any suitable type
);

create table manydata (
	id bigserial primary key,
  	value_id int,
  	inserted_at timestamp with time zone default current_timestamp,
  	updated_at timestamp,
    foreign key (value_id) references datavalues(id)
);
create index on manydata(value_id);


PosgreSQL fiddle
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
ky0
@ky0
Миллиардер, филантроп, патологический лгун
И что страшного в миллионах записей? Тем более, что вы говорите - скорость выборки не принципиальна.

Если переживаете за место - поюзайте какой-нибудь метод компрессии.
Ответ написан
Комментировать
gbg
@gbg
Любые ответы на любые вопросы
Миллион строк - это еще не повод для беспокойства.

Можете для создания тормозов и самоуспокоения, положить базу на ZFS и включить сжатие.
Ответ написан
romesses
@romesses
Backend инженер
Ну, храните дельту, если прям так необходимо сохранить место.
А для временных серий уже все давно придумано.
Скорость выборки не важна.
И 3 минуты тоже хорошо?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы