Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / кэширование запросов / 8 сообщений из 8, страница 1 из 1
05.10.2017, 16:23
    #39531616
mism
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кэширование запросов
Умеет ли Posgresql кэшировать результаты запросов?

Есть приложение логика работы которого неизвестна. Известно лишь что оно генерирует кучу запросов представляющих собою чистый селект без каких-либо условий. Выполняется он в среднем порядка допустим 0,5 сек. и примерно 100000 раз в сутки. Данные в таблице изменяются достаточно редко (несколько раз в сутки). Есть ли какое-либо решение позволяющее закэшировать результаты запроса, чтобы не выполнять его каждый раз. Изменить логику работы приложения пока нет возможности.
...
Рейтинг: 0 / 0
05.10.2017, 17:06
    #39531681
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кэширование запросов
mism,

query cache подобно тому который был в mysql - нет.
Кеширует странички запрашиваемые с диска в shared_buffers.

mismчистый селект без каких-либо условий. Выполняется он в среднем порядка допустим 0,5 сек
Сделайте explain (analyze,buffers) для запроса который делает приложение (лучше с включенным track_io_timing). Если будет видно что долго читаем с диска - добавление shared_buffers поможет. Если всё и так в памяти и в запросе просто глупый seq scanверхней и единственной операцией - вы упёрлись в передачу данных и никакое кеширование на стороне базы вам с этим не поможет.
...
Рейтинг: 0 / 0
05.10.2017, 17:26
    #39531711
mism
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кэширование запросов
"Если всё и так в памяти и в запросе просто глупый seq scan"

"Seq Scan on hsvarstatus (cost=0.00..4798.05 rows=310805 width=7) (actual time=0.007..92.528 rows=311274 loops=1)
Buffers: shared hit=1690
Planning time: 0.346 ms
Execution time: 204.235 ms"

Получается что ничего не поможет.
...
Рейтинг: 0 / 0
05.10.2017, 21:29
    #39531826
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кэширование запросов
mism,

есть такое чудо заморское . правда не использую и не использовал. когда-то задавал такие самые вопросы, и пока искал ответы, наткнулся на это. но переосмыслив, понял, что по крайней мере в моём случае, это ружьё нацеленое на мою ногу.
...
Рейтинг: 0 / 0
05.10.2017, 22:55
    #39531860
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кэширование запросов
mism,

Судя по плану, у вас там что-то типа `SELECT * FROM hsvarstatus`, которая размером ~ 13Мб.

Такие данные надо кэшировать на стороне приложения или в стороннем продукте. redis? memcached?
...
Рейтинг: 0 / 0
06.10.2017, 04:48
    #39531895
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кэширование запросов
mism"Если всё и так в памяти и в запросе просто глупый seq scan"

"Seq Scan on hsvarstatus (cost=0.00..4798.05 rows=310805 width=7) (actual time=0.007..92.528 rows=311274 loops=1)
Buffers: shared hit=1690
Planning time: 0.346 ms
Execution time: 204.235 ms"

Получается что ничего не поможет.

учитывая что на базе он 200ms выполняется то большую часть времени занимает не выполнение запроса а передача 13Mb ответа по сети что дело небыстрое в любом случае. И никакой query cache тут не поможет.
А вот 10Gbit сеть между базой и приложением - может помочь.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
06.10.2017, 15:09
    #39532301
mism
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кэширование запросов
"А вот 10Gbit сеть между базой и приложением - может помочь."

Там и так уже 10Gbit.
...
Рейтинг: 0 / 0
09.10.2017, 09:05
    #39533180
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кэширование запросов
mism... приложение ... генерирует кучу запросов ... примерно 100000 раз в сутки... actual rows=311274Ну пусть разработчики приложения и меняют у себя логику. Каждую секунду запрашивают 300К строк, причем редко меняющихся. Даже слов нет.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / кэширование запросов / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]