MySQL: загрузка базы данных в память

Есть ли способ загрузить всю базу данных MySQL в ОЗУ, особенно на сервере en EC2?

  1. База данных довольно мала (~500 мегабайт)
  2. У меня достаточно памяти
  3. Вопросы скорости имеют решающее значение - полученные запросы используются для обслуживания динамической веб-страницы.

Спасибо,

Адам

2 ответа

Решение

Вы, конечно, можете загружать индексы в кеш; если у вас есть небольшие таблицы ISAM, которые часто запрашиваются, MySQL, вероятно, также загрузит их в кеш. Вот хорошая вики-статья о производительности по настройке MySQL.

Вы можете хранить базу данных на диске RAM, например, ramfs, Это может потенциально привести к риску данных, в зависимости от реализации, поэтому вам нужно будет спроектировать, чтобы компенсировать это. Одно из возможных решений - репликация на диск RAM только для чтения ведомого, а данные там могут быть одноразовыми.

MySQL Clustering (механизм NDB) предназначен для хранения данных в памяти. Однако кластеризация MySQL лучше всего подходит для небольших наборов данных, к которым можно обращаться с помощью простых запросов.

В наши дни любимое решение - memcached, но для поддержки технологии требуется архитектура приложения.

Это довольно большой вопрос. Высокая производительность MySQL - это фантастическая книга, в которой рассматриваются реализации MySQL высокого уровня.

Другие вопросы по тегам