Введение

Плагин 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

Замечание:

Этот плагин требует наличия the 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.