Memcache vs Buffer Pool в MySQL
В чем разница между memcache и буферным пулом в MySQL? Мне кажется, что оба используют память в качестве буфера / кэша, чтобы уменьшить дисковый ввод-вывод.
Спасибо!
1 ответ
Memcache
memcached - это простой, хорошо масштабируемый кеш на основе ключей, в котором хранятся данные и объекты везде, где выделенная или резервная оперативная память доступна для быстрого доступа приложений, без прохождения уровней разбора или дискового ввода-вывода. Для этого вы запускаете команду memcached на одном или нескольких хостах, а затем используете общий кеш для хранения объектов.
InnoDB буферный пул
Область памяти, в которой хранятся кэшированные данные InnoDB как для таблиц, так и для индексов. Для эффективности операций чтения большого объема буферный пул разделен на страницы, которые могут содержать несколько строк. Для эффективности управления кешем буферный пул реализован в виде связанного списка страниц; редко используемые данные устаревают из кэша с использованием варианта алгоритма LRU. В системах с большой памятью вы можете улучшить параллелизм, разделив пул буферов на несколько экземпляров буферного пула.
Несколько переменных состояния InnoDB, information_schema
столы и performance_schema
Таблицы помогают контролировать внутреннюю работу буферного пула. Начиная с MySQL 5.6, вы также можете выгружать и восстанавливать содержимое пула буферов, либо автоматически во время выключения и перезапуска, либо в любое время вручную, с помощью набора переменных конфигурации InnoDB, таких как innodb_buffer_pool_dump_at_shutdown
а также innodb_buffer_pool_load_at_startup
,
Интеграция Memcache с InnoDB
MySQL 5.6 включает в себя интерфейс NoSQL, использующий встроенный демон memcached, который может автоматически сохранять данные и извлекать их из таблиц InnoDB, превращая сервер MySQL в быстрое "хранилище значений ключей" для операций вставки, обновления или удаления из одной строки. Вы также можете получить доступ к тем же таблицам через SQL для удобства, сложных запросов, массовых операций, совместимости приложений и других преимуществ традиционного программного обеспечения для баз данных.
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-benefits.html
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html
Для получения дополнительной информации о memcache см. http://dev.mysql.com/doc/refman/5.0/en/ha-memcached-using.html