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

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

?

16 ответов

10 просмотров

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

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 не представляется возможным, насколько мне известно.

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Доброе утро! Не совсем понятно как установить счетчик яндекс метрики на сайт. И потом ещё цели проставить?
Евгения
18
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Кто-нибудь знает, как считается нагрузка на цпу? И что такое вообще "нагрузка на цпу"? вот, например, есть у цпу какой-то clock, настроенный на 3 ГГц --- Что значит "нагрузка...
Toideng
15
Можно ли написать свою библиотеку "socket" на каком либо языке ассемблера с нуля не используя сишние библиотеки ? Или это самоубийство ?
123🪐
15
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
PopOs or Linux Mint for a noob starter? Also do you have any articles on how to safely dual boot Windows 10 alongside it? I've heard there are a bunch problems that can occur...
Senator
16
Карта сайта