Введение

Плагин mysqlnd memcache (mysqlnd_memcache) является модулем PHP для прозрачной трансляции SQL в запрос к MySQL InnoDB Memcached Daemon Plugin (серверный плагин). Он включает экспериментальную поддержку MySQL Cluster Memcached Daemon. Серверный плагин предоставляет доступ к данным в таблицах MySQL InnoDB (с оглядкой на MySQL Cluster NDB) по протоколу Memcache. Этот модуль, поддерживающий все модули PHP MySQL, использующие mysqlnd, будет определять таблицы, экспортированные таким оброазом и транслировать соответствующие SELECT-запросы в запросы Memcache.

mysqlnd_memcache data flow

Замечание:

Плагин требует наличия MySQL InnoDB Memcached Daemon Plugin. Он не может использоваться с отдельно установленным Memcached. Для общего кеша запросов с использованием Memcached смотрите плагин кеша запросов mysqlnd. Использование прямого доступа к Memcache описано в разделах, посвященных модулям memcache и memcached.

Родной драйвер MySQL для PHP является С-библиотекой, которая поставляется в составе PHP начиная с версии 5.3.0. Он служит заменой для MySQL Client Library (libmysqlclient). Использование mysqlnd имеет некоторые преимущества: не нужно загружать дополнительные библиотеки и модули, поскольку он поставляется в составе дистрибутива PHP, он распространяется под лицензией PHP, в большинстве случаев потребляет меньше памяти и имеет дополнительные возможности, такие как асинхронные запросы.

mysqlnd_mmemcache работает, по большей части, прозрачно для пользователя. Плагин mysqlnd memcache поддерживает все приложения PHP и все модули MySQL PHP. Он не меняет текущее API. Таким образом его достаточно просто использовать с существующими приложениями.

Плагин MySQL Memcache добавляет метод доступа в стиле ключ-значение к данным в InnoDB с поддержкой NDB (кластер MySQL) по протоколу Memcache protocol. Тип доступа ключ-значение зачастую быстрее, чем использование SQL-запросов.

Key Features

Ключевые особенности PECL/mysqlnd_memcache.

  • Возможное увеличение производительности

    • На стороне клиента: легковесный протокол.

    • На стороне сервера: отсутствие необходимости разбора SQL, прямой доступ к данным.

    • Пожалуйста, проведите свои собственные тесты! Фактические результаты работы сильно зависят от используемых настроек и аппаратного обеспечения.

Ограничения

Начальная версия не является бинарно-безопасной. Из-за того, каким образом работают плагины MySQL Memcache, существуют ограничения, связанные с разделителями.

Не поддерживаются подготовленные и асинхронные запросы. Мета-данные результирующего набора ограничены.

Информация о сопоставлении для таблиц, доступных через Memcache, не кешируется в плагине между запросами, а запрашивается с сервера MySQL каждый раз, когда соединение с MySQL связано с соединением Memcache. Более подробно читайте mysqlnd_memcache_set().

О названии

mysqlnd_memcache является сокращением от mysqlnd memcache plugin. Memcache является отсылкой к поддержке плагина MySQL Memcache для InnoDB и NDB (кластер MySQL). Плагин не связан с кеширующим сервером Memcached.