Oracle 5.0 Reference Manual page 2686

Table of Contents

Advertisement

The default
TTL
appear immediately after the SQL hint which enables caching. It is recommended to use the PHP
constant
MYSQLND_QC_TTL_SWITCH
Example 20.310. Setting TTL with SQL hints
<?php
$start = microtime(true);
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");
printf("Default TTL\t: %d seconds\n", ini_get("mysqlnd_qc.ttl"));
/* Will be cached for 2 seconds */
$sql = sprintf("/*%s*//*%s%d*/SELECT id FROM test WHERE id = 1", MYSQLND_QC_ENABLE_SWITCH, MYSQLND_QC_TTL_S
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();
$mysqli->query("DELETE FROM test WHERE id = 1");
sleep(1);
/* Cache hit - no automatic invalidation and still valid! */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();
sleep(2);
/* Cache miss - cache entry has expired */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();
printf("Script runtime\t: %d seconds\n", microtime(true) - $start);
?>
The above examples will output something similar to:
Default TTL
array(1) {
["id"]=>
string(1) "1"
}
array(1) {
["id"]=>
string(1) "1"
}
NULL
Script runtime
20.7.7.4.5. Pattern based caching
Copyright 1997-2012 the PHP Documentation Group. [2230]
An application has three options for telling PECL/mysqlnd_qc whether a particular
statement shall be used. The most basic approach is to cache all statements by setting
mysqlnd_qc.cache_by_default =
Mysqlnd query result cache plugin (mysqlnd_qc)
can be overruled using the SQL hint /*qc_tt=seconds*/. The SQL hint must be
instead of using the string value.
: 30 seconds
: 3 seconds
1. This approach is often of little practical value. But it enables
2666

Advertisement

Table of Contents
loading

This manual is also suitable for:

Mysql 5.0

Table of Contents