которой нужно произвести ILIKE запрос строки в одной колонке. Как можно ускорить такой поиск?
Никогда с подобным не сталкивался. Быстрый поиск по интернету не помог, потому что глобально не знаю, что конкретно искать
Поиск производится на сервере с 16 RAM и 8 vCPU. По-любому же можно как-то распараллелить запросы, но вот как именно…
За планирование распараллеливания, скорее, отвечает планировщик. Если вы сами хотите распараллелить, можете =) Типа select * from table where id >=1 and id < 10000 and column_name ilike 'pattern' select * from table where id >= 10000 and id < 20000 and column_name ilike 'pattern' и так далее=)
О, спасибо за подсказку о планировщике - слышал, но забыл. И за ручное тоже, если с первым не разберусь - попробую вручную
Есть еще вариант - использовать курсор. Время выполнения будет дольше, но нагрузка меньше
А планировщик по умолчанию не распараллелит запрос сам?
Может - зависит от настроек
А где глянуть можно?
grep -i parallel postgresql.conf #max_parallel_workers_per_gather = 2 # taken from max_parallel_workers #max_parallel_maintenance_workers = 2 # taken from max_parallel_workers #max_parallel_workers = 8 # maximum number of max_worker_processes that # can be used in parallel operations #parallel_leader_participation = on #enable_parallel_append = on #enable_parallel_hash = on #parallel_setup_cost = 1000.0 # same scale as above #parallel_tuple_cost = 0.1 # same scale as above #min_parallel_table_scan_size = 8MB #min_parallel_index_scan_size = 512kB
Спасибо 👍
Обсуждают сегодня