Мне было интересно, может ли использование tmpfs улучшить производительность MySQL, и насколько, и как это должно быть сделано? Я предполагаю, что сделать mount -t tmpfs -o size=256M /path/to/mysql/data/DatabaseName
, и для обычного использования базы данных, но, возможно, я ошибаюсь (я использую только таблицы MyISAM).
Будет ли ежечасная rsync между tmpfs /path/to/mysql/data/DatabaseName
и /path/to/mysql/data/DatabaseName_backup
наказывать выступления? Если да, то как мне сделать резервную копию базы данных tmpfs?
Итак, это хороший способ делать что-то, есть ли лучший способ, или я теряю время?
Я ответил на аналогичный вопрос Вот когда кто-то спрашивал, как загрузить базу данных MySQL в память. Среди других потенциальных решений есть собственный ENGINE в MySQL, который лучше подходит для большинства ситуаций.
Для таблиц MyISAM предложенное вами решение будет функциональным.
Rsync не обязательно должен снижать производительность, но он мог бы, если бы в вашей системе было действительно мало ресурсов, так как высокая загрузка ввода-вывода повлияла бы на производительность системы в целом. В большинстве случаев я бы сказал, что это не так, но единственный способ убедиться - это протестировать.
Решение ramdisk кажется мне рискованным. В случае потери питания данные могут быть потеряны, поскольку ваш rsync не будет работать в реальном времени. Вы можете реплицировать базу данных на ведомое устройство, которое может храниться на диске. Запуск MySQL на сервере ramdisk может выполнить scp с этого хоста на ramdisk перед запуском экземпляра.
Если бы ваш экземпляр MySQL не был хорошо оптимизирован, вы бы заметили существенный прирост производительности. Я подозреваю, что при хорошей оптимизации выигрыш будет меньше. Единственный способ быть уверенным - использовать такие инструменты, как Супер привкус, Тест MySQL, и sysbench оценить производительность.
Удачи.