на ней индекс составной user_id + operation_id
Нужна быстрая выборка по operation_id
Повесить индекс на всю таблицу - не вариант(будет даунтайм)
Выборка требуется только по новым операциям.
У меня возникает в голове мысль создать рядом отдельную таблицу с 2мя столбцами: operation_id и user_id
повесить индекс на operation_id и делать вставки одновременно в обе таблицы
Потом когда понадобится получить данные по operation_id, мы идем во вторую таблицу и джоиним из первой таблицы.
Насколько плох такой вариант? Есть еще какие то мысли по решению этой задачи?
> Повесить индекс на всю таблицу - не вариант(будет даунтайм) Откуда там будет downtime? CREATE INDEX CONCURRENTLY ... и всё, казалось бы. > Выборка требуется только по новым операциям. А только по данным как-то можно определить, какие операции новые? Если да — можно создать partial index, см. https://www.postgresql.org/docs/current/indexes-partial.html > Насколько плох такой вариант? Слишком это заморочено, IMHO. ;)
Новые операции это те которые создаются вот сейчас
А бд всё-таки какая? Дубль вопроса на майскл смущает
Постгря, но тут по идее не принципиально
Принципиально, индекс не упадет
Тогда сделайте индекс по времени и выбирайте эти ваши «сейчас». Микроскопическую вероятность необходимости индекса по времени и operation_id можно смело проигнорировать.
Дурацкая манера свои вопросы удалять!
Обсуждают сегодня