Spec-Zone .ru
спецификации, руководства, описания, API

22.9.7.5. Installing/Configuring

Copyright 1997-2012 the PHP Documentation Group.

22.9.7.5.1. Requirements

Copyright 1997-2012 the PHP Documentation Group.

PHP 5.3.3 or a newer version of PHP.

PECL/mysqlnd_qc is a mysqlnd plugin. It plugs into the mysqlnd library. To use you this plugin with a PHP MySQL extension, the extension (mysqli, mysql, or PDO_MYSQL) must enable the mysqlnd library.

For using the APC storage handler with PECL/mysqlnd_qc 1.0 APC 3.1.3p1-beta or newer. PECL/mysqlnd_qc 1.2 has been tested with APC 3.1.13-beta. The APC storage handler cannot be used with a shared build. You cannot use the PHP configuration directive extension to load the APC and PECL/mysqlnd_qc extensions if PECL/mysqlnd_qc will use APC as a storage handler. For using the APC storage handler, you have to statically compile PHP with APC and PECL/mysqlnd_qc support into PHP.

For using MEMCACHE storage handler: Use libmemcache 0.38 or newer. PECL/mysqlnd_qc 1.2 has been tested with libmemcache 1.4.0.

For using sqlite storage handler: Use the sqlite3 extension that bundled with PHP.

22.9.7.5.2. Installation

Copyright 1997-2012 the PHP Documentation Group.

This PECL extension is not bundled with PHP.

Information for installing this PECL extension may be found in the manual chapter titled Installation of PECL extensions. Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: http://pecl.php.net/package/mysqlnd_qc

A DLL for this PECL extension is currently unavailable. See also the building on Windows section.

22.9.7.5.3. Runtime Configuration

Copyright 1997-2012 the PHP Documentation Group.

The behaviour of these functions is affected by settings in php.ini.

Table 22.78. mysqlnd_qc Configure Options

Name Default Changeable Changelog
mysqlnd_qc.enable_qc 1 PHP_INI_SYSTEM
mysqlnd_qc.ttl 30 PHP_INI_ALL
mysqlnd_qc.cache_by_default 0 PHP_INI_ALL
mysqlnd_qc.cache_no_table 0 PHP_INI_ALL
mysqlnd_qc.use_request_time 0 PHP_INI_ALL
mysqlnd_qc.time_statistics 1 PHP_INI_ALL
mysqlnd_qc.collect_statistics 0 PHP_INI_ALL
mysqlnd_qc.collect_statistics_log_file /tmp/mysqlnd_qc.stats PHP_INI_SYSTEM
mysqlnd_qc.collect_query_trace 0 PHP_INI_SYSTEM
mysqlnd_qc.query_trace_bt_depth 3 PHP_INI_SYSTEM
mysqlnd_qc.collect_normalized_query_trace 0 PHP_INI_SYSTEM
mysqlnd_qc.ignore_sql_comments 1 PHP_INI_ALL
mysqlnd_qc.slam_defense 0 PHP_INI_SYSTEM
mysqlnd_qc.slam_defense_ttl 30 PHP_INI_SYSTEM
mysqlnd_qc.std_data_copy 0 PHP_INI_SYSTEM
mysqlnd_qc.apc_prefix qc_ PHP_INI_ALL
mysqlnd_qc.memc_server 127.0.0.1 PHP_INI_ALL
mysqlnd_qc.memc_port 11211 PHP_INI_ALL
mysqlnd_qc.sqlite_data_file :memory: PHP_INI_ALL

Here's a short explanation of the configuration directives.

mysqlnd_qc.enable_qc integer

Enables or disables the plugin. If disabled the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

mysqlnd_qc.ttl integer

Default Time-to-Live (TTL) for cache entries in seconds.

mysqlnd_qc.cache_by_default integer

Cache all queries regardless if they begin with the SQL hint that enables caching of a query or not. Storage handler cannot overrule the setting. It is evaluated by the core of the plugin.

mysqlnd_qc.cache_no_table integer

Whether to cache queries with no table name in any of columns meta data of their result set, for example, SELECT SLEEP(1), SELECT NOW(), SELECT SUBSTRING().

mysqlnd_qc.use_request_time integer

Use PHP global request time to avoid gettimeofday() system calls? If using APC storage handler it should be set to the value of apc.use_request_time , if not warnings will be generated.

mysqlnd_qc.time_statistics integer

Collect run time and store time statistics using gettimeofday() system call? Data will be collected only if you also set mysqlnd_qc.collect_statistics = 1,

mysqlnd_qc.collect_statistics integer

Collect statistics for mysqlnd_qc_get_core_stats? Does not influence storage handler statistics! Handler statistics can be an integral part of the handler internal storage format. Therefore, collection of some handler statistics cannot be disabled.

mysqlnd_qc.collect_statistics-log-file integer

If mysqlnd_qc.collect_statistics and mysqlnd_qc.collect_statistics_log_file are set, the plugin will dump statistics into the specified log file at every 10th web request during PHP request shutdown. The log file needs to be writable by the web server user.

Since 1.1.0.

mysqlnd_qc.collect_query_trace integer

Collect query back traces?

mysqlnd_qc.query_trace_bt_depth integer

Maximum depth/level of a query code backtrace.

mysqlnd_qc.ignore_sql_comments integer

Whether to remove SQL comments from a query string before hashing it to generate a cache key. Disable if you do not want two statemts such as SELECT /*my_source_ip=123*/ id FROM test and SELECT /*my_source_ip=456*/ id FROM test to refer to the same cache entry.

Since 1.1.0.

mysqlnd_qc.slam_defense integer

Activates handler based slam defense (cache stampeding protection) if available. Supported by Default and APC storage handler

mysqlnd_qc.slam_defense_ttl integer

TTL for stale cache entries which are served while another client updates the entries. Supported by APC storage handler.

mysqlnd_qc.collect_normalized_query_trace integer

Collect aggregated normalized query traces? The setting has no effect by default. You compile the extension using the define NORM_QUERY_TRACE_LOG to make use of the setting.

mysqlnd_qc.std_data_copy integer

Default storage handler: copy cached wire data? EXPERIMENTAL – use default setting!

mysqlnd_qc.apc_prefix string

The APC storage handler stores data in the APC user cache. The setting sets a prefix to be used for cache entries.

mysqlnd_qc.memc_server string

MEMCACHE storage handler: memcache server host.

mysqlnd_qc.memc_port integer

MEMCACHE storage handler: memcached server port.

mysqlnd_qc.sqlite_data_file string

sqlite storage handler: data file. Any setting but :memory: may be of little practical value.