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)
MYSQLND_QC_DISABLE_SWITCH
(string)
MYSQLND_QC_TTL_SWITCH
(string)
MYSQLND_QC_SERVER_ID_SWITCH
(string)
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)