индекса. post_pkey (так понимаю стандартный) и post_idx - мой, для полнотекстового поиска (с русским вектором).
И есть 2 идентичных приложения: локальный сервер и продакшн. Индексы одинаковые, я проверял.
На проде 2 200 000 записей, на локалке - 100 000
Когда я делаю обычный запрос, на русском, без каких либо фильтров - используется post_pkey. Но это не сильно страшно, всего какая-то секунда. Но когда делаю запрос на английском (да да, с русским вектором), то на проде используется тот же post_pkey (50-80сек), а на локалке post_idx (0.0..сек). А ещё, что забавно - сразу следующий запрос (просто оффсет + 20) на проде использует post_idx и тоже выполняется за доли секунд.
Объясните пожалуйста, почему так и как исправить?
никто ничего не ответит?
Анализ таблицы пробовали запускать ? я не совсем понял часть про вектора, но при гипотетических проблемах с индексами, часто помогает анализ или реиндекс
Огроооомное спасибо! сделал анализ таблицы и всё заработало как нужно)
значит у планировщика была неверная статистика по содержимому таблицы, поэтому он и неверно выбирал индекс "думая", что первый будет лучше анализ рекомендуется выполнять после после больших изменений в таблицах я думаю после этого вам будет интереснее самостоятельно найти больше информации на данную тему ) не за что, всех благ вам )
да, просто даже не знал как это гуглить. То что находил - не помогало Почитаю на эту тему)
http://www.interdb.jp/pg/pgsql03.html
Обсуждают сегодня