mysqlnd_qc
PHP Manual

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles sólo cuando la extensión haya sido compilada con PHP, o bien sea cargada dinámicamente en ejecución.

Relacionadas con sugerencias SQL

Ejemplo #1 Usar constantes de sugerencias SQL

La caché de consultas está constrolada por sugerencias SQL. Las sugerencias SQL se usan para habilitar y deshabilitar el almacenamiento en la caché. Las sugerencias SQL se pueden usar para establecer el TTL de una consulta.

Las sugerencias SQL reconocidas por la caché de consultas se pueden cambiar manualmente en tiempo de compilación. Esto hace posible usar mysqlnd_qc en entornos en los cuales las sugerencias SQL predeterminadas ya son tomadas e interpretadas por otros sistemas. Por lo tanto, se recomienda usar constantes de cadena de sugerencias SQL en lugar de añadir manualmente las sugerencias SQL predeterminadas a las cadenas de consulta.

<?php
/* Usar constantes para una portabilidad máxima */
$consulta "/*" MYSQLND_QC_ENABLE_SWITCH "*/SELECT id FROM test";

/* Válido pero menos portable: TTL predeterminado */
$consulta "/*qc=on*/SELECT id FROM test";

/* Válido pero menos portable: TTL por sentencia */
$consulta "/*qc=on*//*qc_ttl=5*/SELECT id FROM test";

printf("MYSQLND_QC_ENABLE_SWITCH: %s\n"MYSQLND_QC_ENABLE_SWITCH);
printf("MYSQLND_QC_DISABLE_SWITCH: %s\n"MYSQLND_QC_DISABLE_SWITCH);
printf("MYSQLND_QC_TTL_SWITCH: %s\n"MYSQLND_QC_TTL_SWITCH);
?>

El resultado de los ejemplos serían:

MYSQLND_QC_ENABLE_SWITCH: qc=on
MYSQLND_QC_DISABLE_SWITCH: qc=off
MYSQLND_QC_TTL_SWITCH: qc_ttl=

MYSQLND_QC_ENABLE_SWITCH (string)
Sugerencia SQL usada para habilitar el almacenamiento en caché de una consulta.
MYSQLND_QC_DISABLE_SWITCH (string)
Sugerencia SQL usada para deshabilitar el almacenamiento en caché de una consulta si mysqlnd_qc.cache_by_default = 1.
MYSQLND_QC_TTL_SWITCH (string)
Sugerencia SQL usada para establecer el TTL de un conjunto de resultados.
MYSQLND_QC_SERVER_ID_SWITCH (string)
Esta sugerencia SQL no debería usarse en general. Es necesaria para PECL/mysqlnd_ms para agrupar entradas de la caché para una sentencia, excepto que originándose desde diferentes conexiones físicas. Si se usa esta sugerencia, las configuraciones de la conexión como el usuario, el nombre del host y el conjunto de caracteres, no son consideradas para generar una clave de caché de una consulta. En su lugar, se usan el valor dado y la cadena de consulta como entrada para la función de hash que genera la clave. PECL/mysqlnd_ms podría, si se le indica, almacenar en la caché resultados de los esclavos de Replicación MySQL. Ya que puede contener muchas conexiones al esclavo, la clave de la caché no será formada a partir de las configuraciones de usuario, nombre de host u otras configuraciones que podrían variar para las diferentes conexiones esclavas. En su lugar, PECL/mysqlnd_ms proporciona un identificador que hace referencia al grupo de conexiones esclavas que serán habilitadas para compartir las entradas en la caché sin importar cual era la conexión física esclava para generar la entrada en la caché. No se recomienda el uso de esta característica fuera de PECL/mysqlnd_ms.

Relacionadas con mysqlnd_qc_set_cache_condition()

Ejemplo #2 Ejemplo del uso de mysqlnd_qc_set_cache_condition()

La función mysqlnd_qc_set_cache_condition() permite establecer las condiciones para el almacenamiento en caché de sentencias que no comienzan con las sugerencias SQL necesarias para habilitar el almacenamiento en caché manual.

<?php
/* Almacenar en caché todos los accesos a tablas con nombre "new%" en el esquema/base de datos "bd_ejemplo" durante 1 segundo */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN"bd_ejemplo.new%"1)) {
  die(
"¡Error al establecer la condición de la caché!");
}

$mysqli = new mysqli("host""usuario""contraseña""bd_ejemplo""puerto");
/* almacenada en caché aunque no se proporcionó una sugerencia SQL  */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=bd_ejemplo;port=puerto""usuario""contraseña");
/* no almacenada en caché: sin sugerencia SQL, el patrón no coincide */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* almacenado en caché: TTL 1 segundo, el patrón coincide */
$pdo_mysql->query("SELECT id, title FROM news");
?>

MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN (int)
Usada como parámetro de mysqlnd_qc_set_cache_condition() para establecer las condiciones del almacenamiento en caché automático basado en esquemas.


mysqlnd_qc
PHP Manual