172 похожих чатов

Да ниже дочитал что все же нельзя хотя выше написано

что можно
Но как же в таком случае соблюдать это ограничение?

20 ответов

21 просмотр

Уникальное ограничение — это уникальный индекс. Уникальные индексы у каждой партиции физически отдельные. Если создать уникальный индекс по полю, не связанному с партицированием то получится, что уникальность проверяется только в рамках одной партиции. Поэтому возможны только такие уникальные индексы, у которых поля партицирования являются префиксом (как и вообще все индексы должны начинаться с полей партицирования)

alex che
Уникальное ограничение — это уникальный индекс. Ун...

если у меня поле партиционирования это id (pk) - то уникальности никакой не будет если я его добавлю в ограничение

Да никак, это известное ограничение партицый постгрес.

Хорошая новость: чаще всего вам это не очень и нужно. Если вы в первый раз с этим столкнулись — то 100% не нужно.

Ilya Anfimov
Последнее-то вы с чего взяли?

Мне надо подумать... Наверное, если индекс не партицированный, а консолидированный, то невозможно отцепить партицию. Поэтому он должен быть тоже партицированный

alex che
Мне надо подумать... Наверное, если индекс не парт...

В постгресе нет консолидированных индэксов (и это не имеет отношэния к вопросу).

Ilya Anfimov
Хорошая новость: чаще всего вам это не очень и нуж...

ну как же не нужно - нам не нужны в таблице конфликты!

Вадим Бударин Бударин
ну как же не нужно - нам не нужны в таблице конфли...

Вам, скорее всего, и партицыонирование-то не нужно.

Ilya Anfimov
Вам, скорее всего, и партицыонирование-то не нужно...

секционирование нужно - потому что документов (мусора) будет уйма и они спустя время совсем не нужны будут

Вадим Бударин Бударин
если у меня поле партиционирования это id (pk) - т...

Во всяком случае, придумать use-case, в котором есть числовой id и нужны партицыи — довольно сложно.

Вадим Бударин Бударин
секционирование нужно - потому что документов (мус...

Во-первых, в таком случае партицыонируют по дате или по полю "в архив". Ну, включая это поле (часть поля) в pk, да. Во-вторых, чаще всего выигрыш от truncate или detach partition — не стоит вообще усилий. Во-третьих, какая вам разница — ну, будут дубликаты появляться до детача архивов, а не после. Факта дубликатов это не отменяет.

Ilya Anfimov
Во-первых, в таком случае партицыонируют по дате ...

но мне же не нужно всю таблицу документов очищать - нужно удалять будет старые документы (в ручную в архив их никто переводить не будет)

Вадим Бударин Бударин
но мне же не нужно всю таблицу документов очищать ...

Ещё раз: смысл какой-то в этом появляется для нормальной нагрузки когда размеры таблицы переваливают за несколько тэрабайт. Лучшэ в районе 10. А так -- DELETE замечательно работает, особенно на SSD.

Ilya Anfimov
Во-первых, в таком случае партицыонируют по дате ...

по дате можно, но у нас 2 но: - по дате размер полей секционирования будет больше на 64 байта - предполагалось что клиенты генерируют Id на своей стороне

Ilya Anfimov
Ещё раз: смысл какой-то в этом появляется для норм...

ну понятно что DELETE на большой таблице потребует и время и ресурсы

Вадим Бударин Бударин
ну понятно что DELETE на большой таблице потребует...

То, чем вы занимаетесь называется "преждевременная оптимизацыя". Она с вероятностью 1 приведёт к тому жэ, к чему обычно -- вы заплатите приличным дополнительным геморроем за то, что у вас всё будет работать несколько медленнее.

Ilya Anfimov
То, чем вы занимаетесь называется "преждевременная...

почему? мы планируем держать актуальными пару секций (секция-месяц) - нагрузка я думаю будет гораздо ниже чем на сплошную таблицу

Ilya Anfimov
То, чем вы занимаетесь называется "преждевременная...

И да, дело тут, конечно, в том, что в Postgres плохое партицыонирование. Было бы хорошэе -- можно было бы лепить его куда ни попадя по принцыпу "хужэ не будет". Но партицыонирование тут уж какое есть.

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта