@NubasLol

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

Делаю полнотекстовый поиск на постгрес, но он почему-то работает очень медленно, но особенно первый запрос . Например слово президент встречется в 7 тысячах строк из 120к . Первый запрос занимает около 6 секунд, а уже второй такой же занимает 400мс . У меня tsvector хранится в одтельной колонке и по ней созад индекс gin
  • Вопрос задан
  • 326 просмотров
Пригласить эксперта
Ответы на вопрос 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
потому что постгря кеширует данные, которые прочитала для выполнения запроса.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы