powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostgreSQL - кэширование данных в памяти
7 сообщений из 7, страница 1 из 1
PostgreSQL - кэширование данных в памяти
    #32372994
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вычитал в статье А.Борзова (SadSpirit)
В принципе раньше знал об этом, но вот понять как это происходит не могу.

[quote]
PostgreSQL не читает данные напрямую с диска и не пишет их сразу на диск. Данные загружаются в общий буфер сервера, находящийся в разделяемой памяти, серверные процессы читают и пишут блоки в этом буфере, а затем уже изменения сбрасываются на диск
[/quote]

то есть? Инфа со всех таблиц при запуске сервера читается в буфер? Сколько позволит shared_buffers столько он и прочтет в кэш? А по какому принципу он читает данные - из каких файлов таблиц? По порядку их расположения в директории? По-моему, в Developers Guide что-то было об этом, но не так подробно.

Буду благодарен если своими словами воспроизведете этот процесс.
...
Рейтинг: 0 / 0
PostgreSQL - кэширование данных в памяти
    #32373268
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я не думал, что это будет настолько непонятно...

Естественно, при запуске сервера в буфер ничего не читается. Читаются данные тогда, когда они реально нужны (т.е. когда выполняется запрос, которому они нужны).

Т.е. процессу нужны данные из таблицы foo: он их ищет в буфере. Если есть --- хорошо. Нет --- запрос к ядру ОС, оно их ищет в своём кэше --- если есть, то отдаёт, если нет --- читает с диска. В буфере PostgreSQL оседают наиболее часто используемые данные.
...
Рейтинг: 0 / 0
PostgreSQL - кэширование данных в памяти
    #32373465
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну в общем - то непонятно тому, у кого опыта мало, и кто плохо разбирается пока в принципах работы ОС.
Спасибо за ответ
...
Рейтинг: 0 / 0
PostgreSQL - кэширование данных в памяти
    #32373472
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а реально как-то просмотреть , что за данные хранятся в буфере?
а mySQL по такому же принципу работает или нет?
...
Рейтинг: 0 / 0
PostgreSQL - кэширование данных в памяти
    #32373575
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zimbabwe
а реально как-то просмотреть , что за данные хранятся в буфере?

Средствами SQL ?! Никак. Да и зачем??
Zimbabwe
а mySQL по такому же принципу работает или нет?

Да.
...
Рейтинг: 0 / 0
PostgreSQL - кэширование данных в памяти
    #32373652
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну как зачем.
для общего развития и для понимания того как работает Postgres
...
Рейтинг: 0 / 0
PostgreSQL - кэширование данных в памяти
    #32374772
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну для этого вообщето есть средства отладки.
возможность подсматривать в буффер наверняка приведет к куче дырок и
уязвимостей "Оно вам надо?"
Примерно так мне ответили когда я возжаждал получить доступ к тексту запроса вызвавшего ХП из самой ХП. Мне тутже рассказали что это антисекьюрно
.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostgreSQL - кэширование данных в памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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