|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Для меня интересной и полезной оказалась вот эта тема: 14987498 Я начал делать что-то подобное для себя, и все было хорошо до какго-то момента. У меня удалось повесить соответствующий индекс на одну таблицу, и все работает как надо. Но сегодня начал вешать на вторую, и столкнулся с проблемой, толком не описанной в гуггле. :( Код: plsql 1. 2.
Расширение, естественно, активировано Код: plsql 1. 2.
Подтверждение, что оно работает, видно из этого: Код: plsql 1. 2. 3. 4.
В чем может быть проблема? Ума не приложу. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2013, 19:07 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Stan_1Для меня интересной и полезной оказалась вот эта тема: 14987498 Я начал делать что-то подобное для себя, и все было хорошо до какго-то момента. У меня удалось повесить соответствующий индекс на одну таблицу, и все работает как надо. Но сегодня начал вешать на вторую, и столкнулся с проблемой, толком не описанной в гуггле. :( Код: plsql 1. 2.
Расширение, естественно, активировано Код: plsql 1. 2.
Подтверждение, что оно работает, видно из этого: Код: plsql 1. 2. 3. 4.
В чем может быть проблема? Ума не приложу. :( вы чейто с search_path похоже игрались и поставили extension в схему cache (судя по "operator class cache.gin_trgm_ops for access method gin") а теперь пытаетесь сделать индекс не имея этой схемы в search_path попробуйте CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) cache.gin_trgm_ops); или если не сработает то set search_path to cache; CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) gin_trgm_ops); (но пологике оба метода должны работать). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 02:21 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Maxim Bogukвы чейто с search_path похоже игрались и поставили extension в схему cache (судя по "operator class cache.gin_trgm_ops for access method gin") а теперь пытаетесь сделать индекс не имея этой схемы в search_path попробуйте CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) cache.gin_trgm_ops); или если не сработает то set search_path to cache; CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) gin_trgm_ops); (но пологике оба метода должны работать). Первый метод: Код: plsql 1.
Второй метод: Код: plsql 1.
Но при этом, если раньше выполнение и ошибка команды были мгновенными, то сейчас (база заполнена на 500-600 тыс. записей), после запуска и до момента получения ответа проходит около 10-12 секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 11:54 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Stan_1, уже интересно... 1)что говорит Код: plsql 1.
2)вы из под какого пользователя пробуете индекс создать? из под postgres ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 12:39 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Maxim BogukStan_1, уже интересно... 1)что говорит Код: plsql 1.
2)вы из под какого пользователя пробуете индекс создать? из под postgres ? Код: plaintext 1. 2. 3. 4. 5.
Создать индекс пробовал (с одинаково негативным результатом) из-под: - владельца таблицы (owner) причем со всеми включенными правами - pgadmin через web-консольку - postgres Сейчас еще раз зашел в админку, из-за под владельца таблицы, и попробовал запросы. CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) cache.gin_trgm_ops); - отлуп сразу CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) gin_trgm_ops); - спустя примерно 20 секунд. Но ошибка одна и таже. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 14:05 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Stan_1Maxim BogukStan_1, уже интересно... 1)что говорит Код: plsql 1.
2)вы из под какого пользователя пробуете индекс создать? из под postgres ? Код: plaintext 1. 2. 3. 4. 5.
Создать индекс пробовал (с одинаково негативным результатом) из-под: - владельца таблицы (owner) причем со всеми включенными правами - pgadmin через web-консольку - postgres Сейчас еще раз зашел в админку, из-за под владельца таблицы, и попробовал запросы. CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) cache.gin_trgm_ops); - отлуп сразу CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) gin_trgm_ops); - спустя примерно 20 секунд. Но ошибка одна и таже. всетаки для интереса попробуйтей от postgres сделать CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) fias.gin_trgm_ops); если не получится то что говорит \dn+ fias ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 14:09 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Maxim Boguk всетаки для интереса попробуйтей от postgres сделать CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) fias.gin_trgm_ops); если не получится то что говорит \dn+ fias Ошибся, из-под postgres не пробовал. Этот юзер знает только админ. У меня самый-самый юзер со всеми правами - pgadmin. Адмнистратор появится - попробую из-под юзера postgres, но созданный индекс тогда - точно не из под него создавался. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 14:17 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Stan_1Maxim Bogukвсетаки для интереса попробуйтей от postgres сделать CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) fias.gin_trgm_ops); если не получится то что говорит \dn+ fias Ошибся, из-под postgres не пробовал. Этот юзер знает только админ. У меня самый-самый юзер со всеми правами - pgadmin. Адмнистратор появится - попробую из-под юзера postgres, но созданный индекс тогда - точно не из под него создавался. 1)сделайте \dn+ fias 2)сделайте \du+ [владелец таблицы cache.names] 3)сделайте \du+ pgadmin 4)сделайте \dx 5)сделайте show search_path; из под [владелец таблицы cache.names] и покажите это все... и попробуйте от имени владельца таблицы сделать CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) fias.gin_trgm_ops); ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 14:28 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Maxim Boguk и попробуйте от имени владельца таблицы сделать CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) fias.gin_trgm_ops); О!!! Вот это сработало. 40 секунд и индекс создан. :) Получается, что само расширение создалось только для namespace fias? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 14:39 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Stan_1Maxim Bogukи попробуйте от имени владельца таблицы сделать CREATE INDEX cache_names_name_idx ON cache.names USING gin(lower(name) fias.gin_trgm_ops); О!!! Вот это сработало. 40 секунд и индекс создан. :) Получается, что само расширение создалось только для namespace fias? любое расширение ставится в первую схему из тех что указаны в search_path если у вас там на первом месте была схема fias то оно там и создалось и теперь или его там постоянно указывать или добавить fias в search_path всем пользователям... PS: мое мнение что правильно расширения ставить в схему public и иметь ее (схему public) в search_path у всех пользователей первой (для простоты) или последней (наиболее безопасный вариант если есть всякие ограничения по правам на схемы). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 14:47 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Maxim BogukStan_1пропущено... О!!! Вот это сработало. 40 секунд и индекс создан. :) Получается, что само расширение создалось только для namespace fias? любое расширение ставится в первую схему из тех что указаны в search_path если у вас там на первом месте была схема fias то оно там и создалось и теперь или его там постоянно указывать или добавить fias в search_path всем пользователям... PS: мое мнение что правильно расширения ставить в схему public и иметь ее (схему public) в search_path у всех пользователей первой (для простоты) или последней (наиболее безопасный вариант если есть всякие ограничения по правам на схемы). Понял. Учту на будущее. Спасибо большое!!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2013, 14:53 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Привет. Прошу прощения за внезапный UP. У меня тот-же самый вопрос. Куда поставилось расширение? И почему мне недоступно? Under superuser: Код: sql 1. 2. 3. 4. 5. 6.
Under me: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 16:17 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6.
Здесь подключаетесь к базе данных postgres и в этой БД расширение установлено. Код: sql 1.
А здесь подключаетесь к БД dht и судя по Код: sql 1. 2. 3. 4. 5. 6.
в этой БД расширение не установлено. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 16:39 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Да. Все верно. Но у меня (у пользователя mayton) нет прав на установку пакетов. И слава богу. И не нужны сильно. Вот ведь есть-же стандартный процесс когда не пользователь ставит пакет? А пользователю ставят админы. Такое реально? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 16:48 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 17:58 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
mayton Да. Все верно. Но у меня (у пользователя mayton) нет прав на установку пакетов. И слава богу. И не нужны сильно. Вот ведь есть-же стандартный процесс когда не пользователь ставит пакет? А пользователю ставят админы. Такое реально? Реально только не понятно как относится к исходному вопросу. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 18:10 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
Хорошо. Тогда спрошу вопрос. Решение которое было приведено выше для Stan - мне не подошло. Код: sql 1. 2.
Подскажите если вы знаете чего не хватает? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 18:18 |
|
Проблема с индексом на базе pg_trgm_ops
|
|||
---|---|---|---|
#18+
mayton Хорошо. Тогда спрошу вопрос. Решение которое было приведено выше для Stan - мне не подошло. Код: sql 1. 2.
Подскажите если вы знаете чего не хватает? Не хватает установленного расширения pg_trgm в базе dht. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 18:26 |
|
|
start [/forum/topic.php?fid=53&msg=40092339&tid=1993894]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 133ms |
0 / 0 |