SQLHUB Telegram 2035
🗄 MySQL vs Postgres: как кэшируют страницы данных

Подходы разные:
- MySQL (InnoDB) стремится всё держать под своим контролем
- Postgres больше доверяет операционной системе

MySQL / InnoDB
- Своя память под кэш: innodb_buffer_pool_size обычно = 70%+ RAM на выделенном сервере
- Обход кэша ОС: с innodb_flush_method='O_DIRECT' InnoDB работает напрямую с диском
- Двухсекционный LRU: страницы сначала в old, только потом (через innodb_old_blocks_time`) в `young. Это спасает от «выметания» кэша при больших сканах

Postgres
- Внутренний кэш + page cache ОС: shared_buffers обычно около 30% RAM, остальное оставляют ОС
- Clock-sweep: у страницы счётчик обращений, уменьшается при «прокрутке часов». Когда падает до нуля — страница освобождается

Практические выводы
- Bulk-операции: InnoDB устойчивее к «пробиванию» кэша, в Postgres часть нагрузки идёт в кэш файловой системы
- Тюнинг памяти: в MySQL раздувают buffer pool, в Postgres shared_buffers умеренный, а остальное доверяют ОС

Что стоит проверить в бенчмарках Postgres
- Размер shared_buffers: 4% / 10% / 30% / 50% RAM
- Сценарии: OLTP, последовательные сканы, смешанные нагрузки
- Рабочий набор: меньше / равен / больше доступной RAM
- Метрики: TPS/QPS, p95/p99 латентность, hit ratio, про

https://github.com/postgres/postgres/blob/master/src/backend/storage/buffer/README
5👍5🔥3



tgoop.com/sqlhub/2035
Create:
Last Update:

🗄 MySQL vs Postgres: как кэшируют страницы данных

Подходы разные:
- MySQL (InnoDB) стремится всё держать под своим контролем
- Postgres больше доверяет операционной системе

MySQL / InnoDB
- Своя память под кэш: innodb_buffer_pool_size обычно = 70%+ RAM на выделенном сервере
- Обход кэша ОС: с innodb_flush_method='O_DIRECT' InnoDB работает напрямую с диском
- Двухсекционный LRU: страницы сначала в old, только потом (через innodb_old_blocks_time`) в `young. Это спасает от «выметания» кэша при больших сканах

Postgres
- Внутренний кэш + page cache ОС: shared_buffers обычно около 30% RAM, остальное оставляют ОС
- Clock-sweep: у страницы счётчик обращений, уменьшается при «прокрутке часов». Когда падает до нуля — страница освобождается

Практические выводы
- Bulk-операции: InnoDB устойчивее к «пробиванию» кэша, в Postgres часть нагрузки идёт в кэш файловой системы
- Тюнинг памяти: в MySQL раздувают buffer pool, в Postgres shared_buffers умеренный, а остальное доверяют ОС

Что стоит проверить в бенчмарках Postgres
- Размер shared_buffers: 4% / 10% / 30% / 50% RAM
- Сценарии: OLTP, последовательные сканы, смешанные нагрузки
- Рабочий набор: меньше / равен / больше доступной RAM
- Метрики: TPS/QPS, p95/p99 латентность, hit ratio, про

https://github.com/postgres/postgres/blob/master/src/backend/storage/buffer/README

BY Data Science. SQL hub




Share with your friend now:
tgoop.com/sqlhub/2035

View MORE
Open in Telegram


Telegram News

Date: |

A vandalised bank during the 2019 protest. File photo: May James/HKFP. Administrators The best encrypted messaging apps A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. Telegram users themselves will be able to flag and report potentially false content.
from us


Telegram Data Science. SQL hub
FROM American