Как хранить большую валюту, как данные в базе данных - PullRequest
0 голосов
/ 11 апреля 2019

Мои данные во многом похожи на валюту, поэтому я буду использовать их для демонстрации.

У меня есть 10-15 разных групп данных, мы можем сказать, что разные валюты, такие как доллар или евро.

У них должны быть следующие столбцы:

timestamp INT PRIMARY KEY
value INT

Каждый из них будет иметь более 1 миллиарда строк, и я буду добавлять новые строки с течением времени.

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

Вопрос - добавить ли столбец группы и сохранить все в одной таблице или оставить ее отдельно.Если они находятся в одной и той же колонке, метка времени больше не будет уникальной, и, вероятно, я должен использовать передовые методы SQL, чтобы сделать ее эффективной.

1 Ответ

0 голосов
/ 12 апреля 2019

10 - 15 "валют"?1 миллиард строк каждая ?Рассмотрим список разделов в Postgres 11 или новее.Таким образом, столбец отметки времени остается уникальным для каждого раздела.(Хотя я не уверен, почему это необходимо.)

Или просто иметь 10 - 15 отдельных таблиц без избыточного хранения «валюты» на строку.Размер имеет значение с таким количеством строк.

Или, если у вас обычно есть несколько значений (по одному для каждой "валюты") для одной и той же отметки времени, вы можете использовать одну таблицу с 10-15 выделенными столбцами "валюты".Гораздо меньше в целом, так как экономит накладные расходы кортежа для каждой «валюты» (28 байт на строку или более).См .:

Практичность одной строки для нескольких «валют» зависит от подробных спецификаций.Например: может не работать так хорошо для многих обновлений отдельных значений.

Вы добавили:

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

. Это похоже на идеальный вариант использования индексов BRIN , которые значительно меньше, чем их родственники B-дерева.Обычно немного медленнее, но с вашей настройкой, может быть, даже быстрее.Связанный:

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