## Runtime Configuration

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

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` int

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

`mysqlnd_qc.ttl` int

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

`mysqlnd_qc.cache_by_default` int

  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` int

  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` int

  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` int

  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` int

  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` int

  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` int

  Collect query back traces?

`mysqlnd_qc.query_trace_bt_depth` int

  Maximum depth/level of a query code backtrace.

`mysqlnd_qc.ignore_sql_comments` int

  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` int

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

`mysqlnd_qc.slam_defense_ttl` int

  `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` int

  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` int

  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` int

  `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.