Сервер сайта использует laravel и postgresql.
Для поиска используется полнотекстовый поиск (tsearch2) использующий русские словари.
Проблема в том, что поиск русского текста длится дольше чем текста из латинских символов.
Покажу на примере
Запрос с русским текстом
explain analyze
SELECT *
FROM lots
WHERE search_index @@@ to_tsquery('рус:*')
LIMIT 100
OFFSET 100
Получаем
Planning time: 494.529 ms
Execution time: 3.871 ms
Запрос с английским текстом
explain analyze
SELECT *
FROM lots
WHERE search_index @@@ to_tsquery('eng:*')
LIMIT 100
OFFSET 100
Получаем
Planning time: 2.229 ms
Execution time: 0.700 ms
По результатам видно, что в первом случае Planning Time почти половина секунды, когда во втором случае 2.229 мс.
Вот этот Planning Time хотелось бы уменьшить.
Важно. Заметил одну особенность. Приведенные выше запросы я выполняю через pgAdmin3. Открываю окошко для ввода sql запроса, ввожу запрос, выполняю, Planning Time = 0.5 сек. Но если, не закрывая окна, выполнить этот запрос второй раз, то Planning Time =
0.3 мс. Но на сервере получается что каждый запрос делается как первый раз, то есть с большим Planning Time.