関数・クラス解説

mysqlnd_qc_get_core_stats

version:PECL mysqlnd_qc >= 1.0.0 (公式)

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...
  • ... and has been added to the cache
  • ... but the PHP configuration directive setting of mysqlnd_qc.cache_no_table = 1 has prevented caching.
  • ... but an unbuffered result set is requested.
  • ... but a buffered result set was empty.
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 cache_put = 0 together with cache_hit > 0, if another process has filled the cache. You may want to use num_entries from mysqlnd_qc_get_cache_info() if the handler supports it ( default, APC). 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 cache_put. 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...
  • ... and statement has been run without errors
  • ... and meta data shows at least one column in the result set
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 SELECT SLEEP(1). To cache those statements you have to change default value of the PHP configuration directive mysqlnd_qc.cache_no_table and set mysqlnd_qc.cache_no_table = 1. Often, it is not desired to cache such statements. 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 cache_miss will be incremented as well. 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 cache_hit. 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 cache_put. 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 cache_hit. Since 1.0.0.
query_aggr_store_time_cache_put Aggregated store time ( ms) of all uncached queries that have been put into the cache. See also cache_put. 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 ( bytes) send from MySQL to PHP. The traffic may or may not have been added to the cache. The traffic is the total for all queries regardless if cached or not. 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 ( bytes) send from MySQL to PHP. The traffic may or may not have been added to the cache. The traffic is the total for all queries regardless if cached or not. 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.

サンプル

例1 mysqlnd_qc_get_core_stats() example

/* 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
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール