SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.02.2010 14:49:05

DrewBlin
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

Разместить БД в памяти

Добрый день.
Вопрос заключается в том, есть ли возможность разместить БД MySQL в памяти?
Расшифровываю вопрос. Есть БД. Есть много оперативной памяти - больше чем занимает сама база на диске.
Мне надо сделать так, чтобы база постоянно висела в оперативной памяти. Т.е. чтобы винчестер использовался только тогда, когда необходимо что-то в базу писать.

Я так понимаю, что нужно в настройках выделить кучу места под кеш данных. Но есть опасность, что ОС выпихнет часть данных в своп. А это для меня тоже не есть хорошо.
Как решить такую проблему или хотя бы куда копать?
Использую таблицы MyISAM и InnoDB.

Заранее спасибо.

Неактивен

 

#2 09.02.2010 17:39:34

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Разместить БД в памяти

InnoDB кэшируются в памяти сами по себе (лишь бы innodb_buffer_pool_size
позволял), MyISAM индексы кэшируются (key_buffer_size), данные — только
файловый кэш (что, впрочем, тоже действенно).

Если боитесь свопа — настраивайте параметры аккуратнее. Под Linux можете
использовать --memlock.

Ну и, конечно, никто не запрещает создавать MyISAM таблички на дисках в
памяти (но с угрозой потери данных).

Неактивен

 

#3 09.02.2010 18:04:32

DrewBlin
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

Re: Разместить БД в памяти

paulus написал:

...данные — только файловый кэш...

Простите, а что такое "файловый кеш"? Я не уверен, что понимаю это правильно.

paulus написал:

Ну и, конечно, никто не запрещает создавать MyISAM таблички на дисках в
памяти (но с угрозой потери данных).

А можно это сделать как-то так, чтобы они "зеркалировались" на диск?

Неактивен

 

#4 09.02.2010 18:25:48

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Разместить БД в памяти

Файловый кэш — это кэш файлов в памяти wink Практически любая современная
ОС поддерживает это, ничего настраивать не надо.

Неактивен

 

#5 11.02.2010 10:42:32

DrewBlin
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

Re: Разместить БД в памяти

И еще один вопрос. А как расчитать сколько надо памяти, чтобы вместить всю БД? Объем, занимаемый на диске - это есть точное значение или приблизительное? Вобщем, какая часть из того объема имеет возможность быть в кеше?

Отредактированно DrewBlin (11.02.2010 10:52:38)

Неактивен

 

#6 11.02.2010 16:54:56

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Разместить БД в памяти

В файловом кэше лежит (если умещается) ровно то, что лежит на диске — в том
же объеме. В процессе работы MySQL использует больше памяти, т.к. ему нужно
использовать память под хранение внутренних структур, буферов сортировки,
буферов хранилищ и т.п.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson