все никак не мог найти ответ у гугла:
Сколько оперативы отжирают базы данных (обычные, которые на жестких дисках хранятся, а не в оперативке держат данные, типа Redis) на системах Unix-way (не берем винду, макось и прочее)? Ну т.е. понятно, что какие-то кешировать пытаются, и если им не ограничить, они всю оперативу сожрут, но я скорее о том, есть ли кореляция между тем какая бд и тем сколько она занимает памяти в оперативке? И вообще, что база данных кладет в оперативку, если предположим, что мы кеш отключим чисто для понимания.
P.s. Т.е. грубо говоря база данных X в оперативке не важно от размеров данных и колличества таблиц в оперативке занимает 100мб для своей работы, и только при включенном кеше, она разрастается под любой объем. Или база данных Y на каждую таблицу выделяет по 10мб в оперативке, и для себя отъедает 120мб. Или база данных Z сама занимает 10мб, но в оперативку выгружает все, что ей нужно посчитать по запросу, считает и выгружает из оперативки...
P.p.s. Мне хватит знать про PostgreSQL/MySQL/SQLite и какой-то NoSQL для сравнения
P.p.p.s. Хадал вопрос, для понимания того, сколько оперативки у сервера должно быть, чтобы базу данных все устраивало. И как база данных будет дружить по оперативке с демонами самой программы, обрабатывающей запросы и обращающиеся к бд. Потому что у программы есть прямая корреляция, скоко ты в оперативку данных загрузил, стоко она и займет, а для бд такого понимания нет, потому что новичек, а в интернете в основном говорят "чем больше оперативки тем лучше". Совет замечательный, но разобраться бы 😅
Нда... Вообще это вопрос на небольшую книжку) как СУБД работают с памятью
ответ - никак
80-90% оперативки хоста должно быть отдано под СУБД.
есть ли кореляция между тем какая бд и тем сколько она занимает памяти в оперативке? Кореляции нет. Чем больше ты отдашь памяти под БД в кэше, тем будет лучше. Естественно, этот размер не должнен быть больше общего размера БД (условно, на диске).
И вообще, что база данных кладет в оперативку, если предположим, что мы кеш отключим чисто для понимания. Кэш данных -- главная составляющаяя занимаемой памяти. Далее ещё ОЗУ используется под всяческие служебные структуры данных, метаданные, и рабочие буфера под разные операции над данными -- это всё очень сложно чтобы расписывать детально. Кэш данных -- это главное.
Обсуждают сегодня