Php/docs/function.mysqlnd-qc-get-core-stats
mysqlnd_qc_get_core_stats
(PECL mysqlnd_qc >= 1.0.0)
mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache
说明
mysqlnd_qc_get_core_stats ( ) : array
Returns an array of statistics collected by the core of the cache plugin. The same data fields will be reported for any storage handler because the data is collected by the core.
The
PHP
configuration setting
mysqlnd_qc.collect_statistics
controls the collection of statistics. The collection of statistics
is disabled by default for performance reasons.
Disabling the collection of statistics will also disable the collection
of time related statistics.
The
PHP
configuration setting
mysqlnd_qc.collect_time_statistics
controls the
collection of time related statistics.
The scope of the core statistics is the
PHP
process.
Depending on your deployment model a
PHP
process may handle one or multiple requests.
Statistics are aggregated for all cache entries and all storage handler.
It is not possible
to tell how much queries originating from
mysqli
,
PDO_MySQL
or
mysql
API calls have
contributed to the aggregated data values.
参数
此函数没有参数。
返回值
Array of core statistics
Statistic | Description | Version |
---|---|---|
cache_hit
|
Statement is considered cacheable and cached data has been reused.
Statement is considered cacheable and a cache miss happened but the statement got cached by someone else while we process it and thus we can fetch the result from the refreshed cache. |
Since 1.0.0. |
cache_miss
|
Statement is considered cacheable...
|
Since 1.0.0. |
cache_put
|
Statement is considered cacheable and has been added to the cache.
Take care when calculating derived statistics. Storage handler
with a storage life time beyond process scope may report
|
Since 1.0.0. |
query_should_cache
|
Statement is considered cacheable based on query string analysis.
The statement may or may not be added to the cache. See also
|
Since 1.0.0. |
query_should_not_cache
|
Statement is considered not cacheable based on query string analysis. | Since 1.0.0. |
query_not_cached
|
Statement is considered not cacheable or it is
considered cachable but the storage handler has not returned a hash key for it. |
Since 1.0.0. |
query_could_cache
|
Statement is considered cacheable...
The statement may or may not be in the cache already. It may or may not be added to the cache later on. |
Since 1.0.0. |
query_found_in_cache
|
Statement is considered cacheable and we have found it in the cache
but we have not replayed the cached data yet and we have not send the result set to the client yet. This is not considered a cache hit because the client might not fetch the result or the cached data may be faulty. |
Since 1.0.0. |
query_uncached_other
|
Statement is considered cacheable and it may or may not be in
the cache already but either replaying cached data has failed, no result set is available or some other error has happened. |
|
query_uncached_no_table
|
Statement has not been cached because the result set has at least
one column which has no table name in its meta data. An example of
such a query is
|
Since 1.0.0. |
query_uncached_use_result
|
Statement would have been cached if a buffered result set
had been used. The situation is also considered as a cache miss and
|
Since 1.0.0. |
query_aggr_run_time_cache_hit
|
Aggregated run time (ms) of all cached queries.
Cached queries are those which have incremented
|
Since 1.0.0. |
query_aggr_run_time_cache_put
|
Aggregated run time (ms) of all uncached queries that
have been put into the cache. See also
|
Since 1.0.0. |
query_aggr_run_time_total
|
Aggregated run time (ms) of all uncached and cached queries
that have been inspected and executed by the query cache. |
Since 1.0.0. |
query_aggr_store_time_cache_hit
|
Aggregated store time (ms) of all cached queries.
Cached queries are those which have incremented
|
Since 1.0.0. |
query_aggr_store_time_cache_put
|
Aggregated store time (
|
Since 1.0.0. |
query_aggr_store_time_total
|
Aggregated store time (ms) of all uncached and cached queries
that have been inspected and executed by the query cache. |
Since 1.0.0. |
receive_bytes_recorded
|
Recorded incoming network traffic (
|
Since 1.0.0. |
receive_bytes_replayed
|
Network traffic replayed during cache. This is the total amount of
incoming traffic saved because of the usage of the query cache plugin. |
Since 1.0.0. |
send_bytes_recorded
|
Recorded outgoing network traffic (
|
Since 1.0.0. |
send_bytes_replayed
|
Network traffic replayed during cache. This is the total amount of
outgoing traffic saved because of the usage of the query cache plugin. |
Since 1.0.0. |
slam_stale_refresh
|
Number of cache misses which triggered serving stale data until
the client causing the cache miss has refreshed the cache entry. |
Since 1.0.0. |
slam_stale_hit
|
Number of cache hits while a stale cache entry gets refreshed. | Since 1.0.0. |
范例
Example #1 mysqlnd_qc_get_core_stats() example
<?php/* Enable collection of statistics - default: disabled */ini_set("mysqlnd_qc.collect_statistics", 1);/* Enable collection of all timing related statistics -default: enabled but overruled by mysqlnd_qc.collect_statistics = 0 */ini_set("mysqlnd_qc.collect_time_statistics", 1);/* Populate the cache, e.g. using mysqli */$mysqli = new mysqli('host', 'user', 'password', 'schema');/* Cache miss and cache put */$mysqli->query("/*qc=on*/SELECT id FROM test");/* Cache hit */$mysqli->query("/*qc=on*/SELECT id FROM test");/* Display core statistics */var_dump(mysqlnd_qc_get_core_stats());?>
以上例程会输出:
array(26) { ["cache_hit"]=> string(1) "1" ["cache_miss"]=> string(1) "1" ["cache_put"]=> string(1) "1" ["query_should_cache"]=> string(1) "2" ["query_should_not_cache"]=> string(1) "0" ["query_not_cached"]=> string(1) "0" ["query_could_cache"]=> string(1) "2" ["query_found_in_cache"]=> string(1) "1" ["query_uncached_other"]=> string(1) "0" ["query_uncached_no_table"]=> string(1) "0" ["query_uncached_no_result"]=> string(1) "0" ["query_uncached_use_result"]=> string(1) "0" ["query_aggr_run_time_cache_hit"]=> string(1) "4" ["query_aggr_run_time_cache_put"]=> string(3) "395" ["query_aggr_run_time_total"]=> string(3) "399" ["query_aggr_store_time_cache_hit"]=> string(1) "2" ["query_aggr_store_time_cache_put"]=> string(1) "8" ["query_aggr_store_time_total"]=> string(2) "10" ["receive_bytes_recorded"]=> string(2) "65" ["receive_bytes_replayed"]=> string(2) "65" ["send_bytes_recorded"]=> string(2) "29" ["send_bytes_replayed"]=> string(2) "29" ["slam_stale_refresh"]=> string(1) "0" ["slam_stale_hit"]=> string(1) "0" ["request_counter"]=> int(1) ["process_hash"]=> int(3547549858) }
参见
- Runtime configuration
- mysqlnd_qc.collect_statistics
- mysqlnd_qc.time_statistics
- mysqlnd_qc_get_cache_info() - Returns information on the current handler, the number of cache entries and cache entries, if available