Size: a a a

pgsql – PostgreSQL

2020 August 19

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Включить логирование в postgresql.conf - например логи записи временных файлов.

По умолчанию postgres настроен на работу на калькуляторе
источник

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Vladimir Holyavik
Если проц в полке то где-то пролюбили индекс
Может через временные файлы все делает
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
pg_stat_statement включить и посмотреть
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
Он выдаст статистику, где идёт секСкан.. а где индекс
источник

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Для начала хотя бы pgtune прогнать. На умолчальном shared_buffer в 128MB и work_mem в 4 МБ обработка 40 млн строк мне кажется сомнительной
источник

L█

Loading… ██████] 99%... in pgsql – PostgreSQL
кажется что там индекс безсмысленный, там нужно каждую строку обсчитать и посортировать по результату. Каждое выполнение занимает около 5 минут, таблица 80 гб.  Хочется хотя бы что бы он что-то в память загружал, а не читал каждый раз.  Пробовал крутить shared_buffer до 10 гб - результат не меняется.

Запрос тестовый такой, используются кубы
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
Loading… ██████] 99%
кажется что там индекс безсмысленный, там нужно каждую строку обсчитать и посортировать по результату. Каждое выполнение занимает около 5 минут, таблица 80 гб.  Хочется хотя бы что бы он что-то в память загружал, а не читал каждый раз.  Пробовал крутить shared_buffer до 10 гб - результат не меняется.

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

L█

Loading… ██████] 99%... in pgsql – PostgreSQL
SELECT 
 number,
   CUBE(array[-0.07125604897737503,0.08138637989759445,0.07816182076931,-0.012959044426679611,....]) <#> datac AS dist,
 gender,
 region  
FROM public.emb  
ORDER BY
 CUBE(array[-0.07125604897737503,0.08138637989759445,0.07816182076931,-0.012959044426679611,-....]) <#> datac
LIMIT 20
источник

L█

Loading… ██████] 99%... in pgsql – PostgreSQL
индексы типа GiST  пробовал. становилось только хуже...
источник

L█

Loading… ██████] 99%... in pgsql – PostgreSQL
Vladimir Holyavik
А ф-циональный индекс не хотите заюзать?
а что это? )
источник

AB

Andrey Borodin in pgsql – PostgreSQL
Loading… ██████] 99%
SELECT 
 number,
   CUBE(array[-0.07125604897737503,0.08138637989759445,0.07816182076931,-0.012959044426679611,....]) <#> datac AS dist,
 gender,
 region  
FROM public.emb  
ORDER BY
 CUBE(array[-0.07125604897737503,0.08138637989759445,0.07816182076931,-0.012959044426679611,-....]) <#> datac
LIMIT 20
речь о knn в высоких размерностях?
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
Это когда вы пишите фцию на основе полей таблицы.. и индекс строится на результатах
источник

AB

Andrey Borodin in pgsql – PostgreSQL
для поиска по эмбеддингам всяеих word2vec наши индексы почти нифига не дают
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
А уже в коде просто делаете вызов функции
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
Гуглите )
источник

AB

Andrey Borodin in pgsql – PostgreSQL
для приближенного knn надо пинать вот этих чуваков чтобы они шарили код https://dl.acm.org/doi/pdf/10.1145/3318464.3386131
источник

AB

Andrey Borodin in pgsql – PostgreSQL
я если что готов помочь им с ревью кода :)
источник

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Посмотрел на состав разработчиков - надеюсь комментарии в коде не на китайском
источник

AB

Andrey Borodin in pgsql – PostgreSQL
код прототипов с sigmod\vldb комментировать бессмысленно - это очень часто поделия людей, которые и не собирались писать что-то поддерживаемое. Наука!=продакшен
источник

AB

Andrey Borodin in pgsql – PostgreSQL
но если это что-то толковое и реально работающее, а не только на бумаге, можно довести это
источник