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

Подскажи плиз можно ли юзать триграмные индексы для первичных ключей

?

16 ответов

21 просмотр

А отчего ж нет?

NNurik-N Автор вопроса
Petr
А отчего ж нет?

У меня просто композитные первичные ключи. Я просто ещё не пробовал такое делать

Petr
А отчего ж нет?

От того, что на них не бывает UNIQUE? (Только имитацыя)

NNurik N
У меня просто композитные первичные ключи. Я прост...

А искать то надо по всем столбцам, которые входят в "композитный" первичный ключ?

NNurik-N Автор вопроса

А что значит имитация ? Констрейнт будет вообще работать или там коллизии могут возникнуть ?

Не совсем понял, о чем вы. См. пример.

NNurik-N Автор вопроса
Petr
Не совсем понял, о чем вы. См. пример.

Там же будет 2 индекса в итоге

NNurik N
Там же будет 2 индекса в итоге

Для таблицы test_comp (ваш случай) — один GIN индекс. Он поддерживает многоколоночные индексы.

NNurik-N Автор вопроса
Petr
Для таблицы test_comp (ваш случай) — один GIN инде...

Ах вот оно как ) спс, понял теперь. Нужно просто пересоздать первичные ключи получается после включения extention соответствующего ? Просто сейчас у меня по два индекса на каждое поле-участнике в первичном ключе

NNurik N
Ах вот оно как ) спс, понял теперь. Нужно просто п...

Не понял. Зачем что-то "пересоздавать"? Если только там изначально что-то неверно. >Просто сейчас у меня по два индекса на каждое поле-участнике в первичном ключе Например это. Для справки: 1. btree и GIN индексы (в частности) поддерживают многоколоночные варианты (т.е. "единый" индекс сразу по нескольким колонкам); 2. Когда вы создаете PK (хоть композитный, хоть какой) — под капотом там уже создается btree индекс, и свой делать не требуется. Очевидно, ограничение UNIQUE тоже "встроено" по определению первичного ключа. Таким образом, у вас просто должны быть PK + один триграммный индекс на таблицу (в контексте описываемой задачи).

NNurik-N Автор вопроса
Petr
Не понял. Зачем что-то "пересоздавать"? Если тольк...

Не, все норм, я думал изначально, что одного индекса будет достаточно. Но на триграммный индекс просто можно добавить. Я думал просто съэкономить ресурсы и использовать только триграмные индексы

NNurik N
А что значит имитация ? Констрейнт будет вообще ра...

НЯП, на EXCLUDE не работают foreign keys, ещё вроде ON CONFLICT.

NNurik N
Не, все норм, я думал изначально, что одного инде...

>Я думал просто съэкономить ресурсы и использовать только триграмные индексы Не выйдет, т.к. оператор равенства (и проч.) в gin_trgm_ops отсутствует (по крайней мере без изменения исходных кодов PostgreSQL и/или расширений к нему у вас просто нет выбора в рамках PK).

Petr
>Я думал просто съэкономить ресурсы и использовать...

Разве отсутствует? Впрочем, GIN всё равно не поддержывает EXCLUDE.

Ilya Anfimov
Разве отсутствует? Впрочем, GIN всё равно не подд...

Прошу прощения, в PostgreSQL 14 действительно появился и оператор равенства, но его одного всё равно недостаточно (нет операторов неравенства и проч.). И, как говорил выше, всё равно изменить тип индекса для PK не представляется возможным, насколько мне известно.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта