ситуации.
1. Есть дефотный postgres и табличка (картинка).
2. В эту табличку будут писаться данные. Примерно 6к записей в секунду.
3. Данные должны хранится и пользователь должен иметь к ним "оперативный" доступ в течении 5 лет.
Вопрос. Вот например у нас накопилось там 5 миллиардов записей.
Как мне оценить в этом случае скорость выборки данные, например по диапазону 1 сутки?
Как подобрать железо и вообще что из этого выйдет.
Саму таблицу мы не можем изменять. А всё вокруг можем.
Поделитесь мнением, пожалуйста.
Покажите \d+ таблицы (не нужно картинок, в них всё равно не видно индексов и т.п.). > пользователь должен иметь к ним "оперативный" доступ А что это значит, в принципе? > Как мне оценить в этом случае скорость выборки данные, например по диапазону 1 сутки? Например, никак. ;) Более конкретные запросы (по каким критериям — за какие сутки (5 лет назад или вчера, например), какие ещё условия) нужны для этого. > Как подобрать железо и вообще что из этого выйдет. Очень зависит от ответов на вопросы выше.
Извиняюсь за кодировку. Не смог с полтычка победить... Оперативный доступ означает, что человек без каких либо манипуляций с сервером (развернуть бекап или т.п.) мог получить доступ к данным.
По каким "суткам". В идеале конечно могут заглянуть и на 4 года назад. Но в основном это операции до 3 месячной давности
Да текстом же... и как Вы только эту кодировку терпите, да. ;) (Я вот всегда стараюсь ставить LC_MESSAGES=C для сервера PostgreSQL, ну и utf-8 для клиента.)
Секционированная таблица "public.trends" Столбец | Тип | Правило сортировки | Допустимость NULL | По умолчанию | Хранилище | Сжатие | Цель для статистики | Описание ---------+--------------------------------+--------------------+-------------------+--------------+-----------+--------+---------------------+---------- id | integer | | not null | 0 | plain | | | l | smallint | | not null | 0 | plain | | | t | timestamp(3) without time zone | | not null | | plain | | | v | double precision | | | | plain | | | q | integer | | not null | | plain | | | Ключ разбиения: RANGE (t) Индексы: "tpk" PRIMARY KEY, btree (id, l, t) Секции: tp2023m06d01 FOR VALUES FROM ('2023-06-01 00:00:00') TO ('2023-06-02 00:00:00'), tp2023m06d02 FOR VALUES FROM ('2023-06-02 00:00:00') TO ('2023-06-03 00:00:00'), tp2023m06d03 FOR VALUES FROM ('2023-06-03 00:00:00') TO ('2023-06-04 00:00:00'), tpdefault DEFAULT
Обсуждают сегодня