Использование

После связи соединения MySQL с соединением Memcache с использованием mysqnd_memcache_set(), плагин будет пытаться прозрачно подменить запросы SELECT запросами через memcache. С этой целью плагин отслеживает все выполняемые SQL-запросы и пытается распознать их с помощью MYSQLND_MEMCACHE_DEFAULT_REGEXP. В случае, если запрос распознался, плагин mysqlnd memcache plugin проверяет, использует ли SELECT только столбцы сопоставленной таблицы и условия WHERE ограничены поиском только одного ключа.

В случае с приведенной таблицей, плагин будет использовать интерфейс Memcache сервера MySQL для извлечения результатов для запросов типа SELECT f1, f2, f3 WHERE id = n.

Пример #1 Простой пример

<?php
$mysqli 
= new mysqli("host""user""passwd""database");
$memc = new Memcached();
$memc->addServer("host"11211);
mysqlnd_memcache_set($mysqli$memc);

/*
   Этот запрос обращается к таблице test, используя id как ключ в условии
   WHERE и запрашивает поля f1, f2 и f3. Соответственно, mysqlnd_memcache
   перехватит его и перенаправит в memcache.
*/
$result $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while (
$row $result->fetch_row()) {
    
print_r($row);
}

/*
   Этот запрос обращается к таблице test, но в условии WHERE использует поле f1.
   Соответственно, mysqlnd_memcache не будет его перехватывать. Так что
   этот запрос будет выполнен как обычный SQL-запрос по протоколу MySQL
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while (
$row $result->fetch_row()) {
    
print_r($row);
}
?>

Результат выполнения данного примера:

array(
    [f1] => Hello
    [f2] => World
    [f3] => !
)
array(
    [id] => 2
)