@pgsql

Страница 908 из 1062
blkmrkt
30.07.2018
03:50:41




Ок, это наверное из-за ORDER BY

Google
blkmrkt
30.07.2018
05:12:33
А почему gin индекс должен ускорять like запрос?
Да это я просто тестировал. Там обычный btree раньше был. Еще странно - сейчас сделал запрос без ORDER BY, с WHERE profile ->> 'domain' LIKE '%username%', выполнилось за 800мс. Делаю WHERE profile ->> 'domain' LIKE '%usernam%', квери висит до сих пор.

Как такой поиск вообще ускорить? В поле 'domain' просто никнейм пользователя, вот нужно быстрый 'term%' или '%term%' реализовать. Сервер на медленных дисках, в таблице 500милл записей.

Anton
30.07.2018
06:01:12
= и индекс хотя бы btree. А json обязательно?

Может вынести это поле из структуры?

Volodymyr Kostyrko
30.07.2018
06:14:47
Нет, если jsonb можно напрямую адресовать и индексы строиться будут.

Быстрый поиск... У вас оно на логические куски делится или положение '%term%' в строке случайно?

blkmrkt
30.07.2018
06:18:48
Быстрый поиск... У вас оно на логические куски делится или положение '%term%' в строке случайно?
Не, там просто одно слово. Это никнеймы пользователей из ВКонтакта. Хотя бы по ILIKE 'term%' их искать за вменяемое время

Volodymyr Kostyrko
30.07.2018
06:19:50
Ну тогда постройте по полю хотя бы btree.

Volodymyr Kostyrko
30.07.2018
06:21:08
А.

Кстати, в gin логичнее запихивать весь jsonb.

Konstantin
30.07.2018
06:23:36
https://youtu.be/zoW3lqbaGxM

случайно в буфере оказалось ) пардон

Google
Mikhail
30.07.2018
07:47:05
not (table.state = 2) и table.state != 2 Это ведь одно и тоже?

Denis
30.07.2018
07:48:25
да

Leonid
30.07.2018
08:25:01
Подскажите, какой максимальный размер jsonb записи в postgresql?

Darafei
30.07.2018
08:28:42
~256 mb

у json гигабайт

blkmrkt
30.07.2018
08:50:42
Кстати, в gin логичнее запихивать весь jsonb.
Ресурсов столько нет, чтоб все сразу индексировать. И статей в гугле не нахожу, как оптимизировать поиск на большом датасете из единичных слов.

Alex
30.07.2018
09:01:50
ребята, а можно через psql задать адреса, которые сервер будет слушать ну аля listen_addresses, только без самого рестарта?

нашел pg_ctl reload, спасибо)

Денис
30.07.2018
10:00:46
Привет. Господа (и дамы), помогите пожалуйста с натуральной сортировкой цифер. Я создал коллате: CREATE COLLATION numeric (provider = icu, locale = 'uni-u-kn-true'); и пытаюсь применять его в сортировке: select * from zip_code order by (code COLLATE "numeric"); Но сортировка не работает вообще. Помогите пожалуйста. Как мне отсортировать по цифрам корректно?



wonser
30.07.2018
10:05:55
А должнл быть 1 2 3 10 10а.. 30...?

Денис
30.07.2018
10:06:09
Natalia
30.07.2018
10:06:48
ребята, привет! Заранее прошу прощения за спам, но вдруг кого-то заинетересует, а может быть у кого-то есть знакомые, которым может быть интересно: мы ищем разработчиков баз данных, которым интересно принять участие в разработке больших, распределенных систем обработки информации.

Денис
30.07.2018
10:06:49
Это номера домов

Natalia
30.07.2018
10:07:34
на все вопросы готова ответить в direct

во вакансии)

Денис
30.07.2018
10:10:38
# select '2' < '10' COLLATE numeric; ?column? ---------- f

Я так понимаю, с поддержкой коллег в этой группе не особо густо. Что-ж, восполню немного это упущение. Нашел решение вопроса натуральной сортировки, единственное, которое нормально работает с номерами домов. С цифрами и буквами. Единственная проблема - цифры, идущие после букв - игнорируются. Может кому пригодится: https://stackoverflow.com/a/46643772 #натуральнаясортировка

Google
Денис
30.07.2018
11:33:42
Вообще, по идее, использование ICU должно тут помогать... https://www.postgresql.org/docs/current/static/collation.html#id-1.6.10.4.5.7.5
именно эту часть документации я и изучал, но, почему-то не сработало. Я там ниже показывал простое выражение, которое тоже не сработало.

# select '2' < '10' COLLATE numeric; ?column? ---------- f

Arthur
30.07.2018
11:36:19
# select '2' < '10' COLLATE numeric; ?column? ---------- f
У меня select '2' < '10' COLLATE numeric; ?column? ---------- t У вас какая версия postgres?

Денис
30.07.2018
11:36:51
PostgreSQL 10.4 (Debian 10.4-2.pgdg80+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10+deb8u1) 4.9.2, 64-bit

Может быть нужны какие-то необязательные зависимости?



Андрей
30.07.2018
12:20:15
парни хелп почему при такой INSERT INTO user_subservices values(unnest(ARRAY[1,2,3,4,5,6,7]),unnest(ARRAY['q','w','e'])); будет нормальных 21 строк но если первый масив будет кратный 3, то строк будет столько, сколько чисел в массиве

у меня?

S
30.07.2018
12:33:01
Note By design, ICU will accept almost any string as a locale name and match it to the closest locale it can provide, using the fallback procedure described in its documentation. Thus, there will be no direct feedback if a collation specification is composed using features that the given ICU installation does not actually support. It is therefore recommended to create application-level test cases to check that the collation definitions satisfy one's requirements.

Андрей
30.07.2018
12:34:14
S
30.07.2018
12:34:15
@bondarden ваш icu из вашего debian возможно не поддерживает нужную вам локаль

Андрей
30.07.2018
12:37:53
Какая у Вас version() ? ERROR: set-returning functions are not allowed in VALUES
очень странно, в документации написано что должно в таком случае нул резалтить unnest(ARRAY[1,2],ARRAY['foo','bar','baz']) 1 foo 2 bar NULL baz

Gennady
30.07.2018
12:54:30
select unnest(ARRAY[1,2,3,4,5,6,7]),unnest(ARRAY['q','w','e']); работает так, как Вы описали

Андрей
30.07.2018
12:56:25
select unnest(ARRAY[1,2,3,4,5,6,7]),unnest(ARRAY['q','w','e']); работает так, как Вы описали
да, но сделайте первый массив не с 7 элемонтов а 6

Gennady
30.07.2018
12:58:03
Нет никаких проблем, на вашей версии (9.3, кажется) посмотреть не могу

Андрей
30.07.2018
12:59:22
на какой вы смотрите

Google
Gennady
30.07.2018
12:59:42
10.3

Андрей
30.07.2018
13:00:28
тоесть на 10.3 если первого массив длинна 6 а второго 3 то результат 18 строк?

Admin
ERROR: S client not available

Виктор
30.07.2018
13:03:40
Странно как то работает. При соотношении в размере не нацело между массивами, получаем декартово произведение, иначе - нет.

Gennady
30.07.2018
13:05:46
тоесть на 10.3 если первого массив длинна 6 а второго 3 то результат 18 строк?
нет 18 строк, их 6 или 7. Но values(unnest) не работает совсем.

Amir
30.07.2018
13:10:54
спросили, сам не разу не использовал, но стало интересно SELECT INTO плюсы и минусы?

Андрей
30.07.2018
13:13:05
блин, мне нужно передать два массива и число [1,2,3] ['a','s'],1 и что б мне построих отношение типа 1 'a' 1 1 's' 1 2 'a' 1 2 's' 1 3 'a' 1 3 's' 1

как это сделать думал через эти unnest, но нет

не выходит

Gennady
30.07.2018
13:17:12
cross join ?

Денис
30.07.2018
13:17:27
@bondarden ваш icu из вашего debian возможно не поддерживает нужную вам локаль
Возможно. Я сейчас это проверю. Разрабатываемое приложение прдполагает установку пользователем самостоятельно. Поэтому конкретной локали быть не может. Именно поэтому я использую uni-u-kn-true

Сейчас проверил под убунтой на десктопе - работает. Осталось понять, почему на стейджинге не работает. Версии постгреса одинаковые. Локали системы - тоже.

S
30.07.2018
13:25:49
это же зависит от libicu, а не версии postgres или системных локалей libc

Денис
30.07.2018
13:27:42
Как мне понять причину? Какие шаги предпринять?

я понимаю, что проблема с icu, раз тут не работает, а там работает. но не знаю, что мне сделать, чтобы однозначно понять в чем причина.

Mike Chuguniy
30.07.2018
13:31:26
@bondarden посмотрите, какие локали у вас в системах установлены и там, и там, locale -a

alex
30.07.2018
13:38:08
дурги , подскажите по проблеме

настравиаю посгри + патрони, на одной машине все поднялось. на другой ошибку кажет

CRITICAL: system ID mismatch, node jr-conf-app-01 belongs to a different cluster: 6583990523194021581 != 6583943263285112373

как починить

Google
alex
30.07.2018
13:39:03
поднялось там где нету никакой базы

а на сервере где есть база, не подымается

Денис
30.07.2018
13:44:07
@bondarden посмотрите, какие локали у вас в системах установлены и там, и там, locale -a
Сейчас доберусь до компьютера, буду сравнивать в чем разница, пытаться привести кодинаковой конфигурации. Спасибо за помощь!

@bondarden посмотрите, какие локали у вас в системах установлены и там, и там, locale -a
кодировки пересекаются. создал пустую базу данных на стейджинге и локально с одной и той же collate и ctype ru_RU.UTF-8. В базах создал одинаковый коллате копипастом и выполнил select '2' < '10' collate numeric;. Результат разный.

Sergey
30.07.2018
14:08:36
Чет никогда раньше не задумывался ) например есть таблица "избранное", в которой надо связать user_id и id из двух таблиц (!) т.е. у пользователя может быть в избраном и Группа, и Диалог Как тогда делают связующую таблицу с group_id и dialogue_id ?

elfiki
30.07.2018
14:31:51
ну типа две таблицы

одну с группами, вторую с диалогами

Sergey
30.07.2018
14:33:23
ок

Alexandr
30.07.2018
14:39:32
@obartunov - Демоны..

Mikhail
30.07.2018
14:40:04
модно чтоли стало ебанутые ники ставить...

Nikolai
30.07.2018
14:41:01
это ж спам

Mikhail
30.07.2018
14:41:31
я их уже 3 тут вижу, минимум =)))

Страница 908 из 1062