@aamorozov

Возможно ли в MySQL хранить часть таблицы в оперативной памяти?

В наличии есть сервер с 128Гб оперативной памяти на котором установлен MySQL.
А так же есть база данных, с очень ощутимым ежедневным приростом в данных.
Собственно в БД есть несколько партиционируемых по месяцам таблиц (MyIsam).
Подскажите, возможно ли сделать так, чтобы например данные за три последних месяца были не просто сохранены в бд а находились в оперативной памяти, для быстрого доступа к ним. Просто данные представляющие интерес лежат в последних трех партициях. Но при этом хранить надо все данные за несколько лет.... Собственно интерес представляет как реализовать вышеописанное. Заранее спасибо за советы.
  • Вопрос задан
  • 4233 просмотра
Пригласить эксперта
Ответы на вопрос 3
Ответ написан
Комментировать
@PoopZemli
Предварительный поиск показал, что так делать нельзя. Но можно создать таблицу на движке memory и регулярно обновлять ее, добавляя новые записи и удаляя старые.
Ответ написан
Комментировать
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Во первых при возможности конвертироваться в Innodb (XtraDB) дальше интересней, включаете опцию innodb_file_per_table, затем настраиваете партицирование (partitioning) своих таблиц по месяцам итого за каждый месяц получаем отдельный набор файлов в базе, дальше есть варианты, можно создать раздел в tmpfs при старте загонять туда нужные партиции и линковать в директорию базы (очень не безопасно, нужно думать над костылем периодического сброса данных на диск), лично я проделывал похожий финт ушами, но не на одном сервере а на нескольких причем на основном база жила в хорошем рейде с кашкадированием, а вот на слейве в ридонли создавался такой раздел в ram и туда загонялась нужная часть базы, движок читал из слейва, но писал в мастер, там особенность нагрузок была 95R/5W. В вашем случае нужен серьезный архитектор - это не вопрос для тостера, очень много нюансов нужно учитывать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы