Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
Вопрос заключается в том, есть ли возможность разместить БД MySQL в памяти?
Расшифровываю вопрос. Есть БД. Есть много оперативной памяти - больше чем занимает сама база на диске.
Мне надо сделать так, чтобы база постоянно висела в оперативной памяти. Т.е. чтобы винчестер использовался только тогда, когда необходимо что-то в базу писать.
Я так понимаю, что нужно в настройках выделить кучу места под кеш данных. Но есть опасность, что ОС выпихнет часть данных в своп. А это для меня тоже не есть хорошо.
Как решить такую проблему или хотя бы куда копать?
Использую таблицы MyISAM и InnoDB.
Заранее спасибо.
Неактивен
InnoDB кэшируются в памяти сами по себе (лишь бы innodb_buffer_pool_size
позволял), MyISAM индексы кэшируются (key_buffer_size), данные — только
файловый кэш (что, впрочем, тоже действенно).
Если боитесь свопа — настраивайте параметры аккуратнее. Под Linux можете
использовать --memlock.
Ну и, конечно, никто не запрещает создавать MyISAM таблички на дисках в
памяти (но с угрозой потери данных).
Неактивен
paulus написал:
...данные — только файловый кэш...
Простите, а что такое "файловый кеш"? Я не уверен, что понимаю это правильно.
paulus написал:
Ну и, конечно, никто не запрещает создавать MyISAM таблички на дисках в
памяти (но с угрозой потери данных).
А можно это сделать как-то так, чтобы они "зеркалировались" на диск?
Неактивен
Файловый кэш — это кэш файлов в памяти Практически любая современная
ОС поддерживает это, ничего настраивать не надо.
Неактивен
И еще один вопрос. А как расчитать сколько надо памяти, чтобы вместить всю БД? Объем, занимаемый на диске - это есть точное значение или приблизительное? Вобщем, какая часть из того объема имеет возможность быть в кеше?
Отредактированно DrewBlin (11.02.2010 10:52:38)
Неактивен
В файловом кэше лежит (если умещается) ровно то, что лежит на диске — в том
же объеме. В процессе работы MySQL использует больше памяти, т.к. ему нужно
использовать память под хранение внутренних структур, буферов сортировки,
буферов хранилищ и т.п.
Неактивен