@NubasLol

PostgresQl почему второй запрос быстрее первого?

Делаю полнотекстовый поиск на постгрес, но он почему-то работает очень медленно, но особенно первый запрос . Например слово президент встречется в 7 тысячах строк из 120к . Первый запрос занимает около 6 секунд, а уже второй такой же занимает 400мс . У меня tsvector хранится в одтельной колонке и по ней созад индекс gin
  • Вопрос задан
  • 390 просмотров
Пригласить эксперта
Ответы на вопрос 4
@good_beginer
Для увеличения скоростити запростов надо бы проинтексировать таблицы, будет ощутимая разница а что касается разницы во времени по мойму это просто кэширование, тоесть он при повторном запросе он просто выводит последний результат и также смотрит есть ил разница между текушим состоянием таблицы и то что в памяти
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
Смотрите explain (analyze, buffers), сильно желательно с включенным track_io_timing. Почти наверняка первый запрос вы читаете с диска, второй - уже из shared_buffers. Либо с page cache операционной системы.
Ответ написан
@lega
Что-бы было быстро:
1) берите необходимое кол-во данных, например 50-100 первых, вместо выкачивания всего.
2) Используйте специализированные инструменты (sphinxsearch/elasticsearch).
Ответ написан
Комментировать
VladimirAndreev
@VladimirAndreev
php web dev
потому что постгря кеширует данные, которые прочитала для выполнения запроса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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