|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Copyright 1997-2012 PHP Documentation Group.
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_clear_cache
Сбросьте все содержание кэша
Описание
bool mysqlnd_qc_clear_cache();
Сбросьте все содержание кэша.
Сбрасывание кэша является ответственностью за обработчик хранения. Весь встроенный обработчик хранения, но
memcache поддержка обработчика хранения, сбрасывающая кэш. memcache обработчик хранения не может сбросить свое содержание кэша.
Определяемый пользователем обработчик хранения может или, возможно, не поддерживает работу.
Параметры
У этой функции нет никаких параметров.
Возвращаемые значения
Возвраты TRUE на успехе или FALSE при отказе.
Возвращаемое значение FALSE указывает, что сбрасывание всего содержания кэша
перестало работать, или работа не поддерживается активным обработчиком хранения. Приложения не должны
ожидать, что вызывание функции будет всегда сбрасывать кэш.
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_get_available_handlers
Возвращает список доступного обработчика хранения
Описание
array mysqlnd_qc_get_available_handlers();
То, какое хранение доступны, зависит от конфигурации времени компиляции плагина кэша запроса. default обработчик хранения всегда доступен. Весь другой обработчик хранения
должен быть включен явно, создавая расширение.
Параметры
У этой функции нет никаких параметров.
Возвращаемые значения
Возвращает массив доступного встроенного обработчика хранения. Для каждого обработчика хранения даются номер версии и строка версии.
Примеры
Пример 22.324. mysqlnd_qc_get_available_handlersпример
<?phpvar_dump(mysqlnd_qc_get_available_handlers());?>
Вышеупомянутые примеры выведут:
array(5) { ["default"]=> array(2) { ["version"]=> string(5) "1.0.0" ["version_number"]=> int(100000) } ["user"]=> array(2) { ["version"]=> string(5) "1.0.0" ["version_number"]=> int(100000) } ["APC"]=> array(2) { ["version"]=> string(5) "1.0.0" ["version_number"]=> int(100000) } ["MEMCACHE"]=> array(2) { ["version"]=> string(5) "1.0.0" ["version_number"]=> int(100000) } ["sqlite"]=> array(2) { ["version"]=> string(5) "1.0.0" ["version_number"]=> int(100000) }}
См. Также
| Установка |
mysqlnd_qc_set_storage_handler
|
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_get_cache_info
Информация о возвратах о текущем обработчике, числе записей кэша и записей кэша, при наличии
Описание
array mysqlnd_qc_get_cache_info();
Параметры
У этой функции нет никаких параметров.
Возвращаемые значения
Информация о возвратах о текущем обработчике, числе записей кэша и записей кэша, при наличии. То, если и какие данные будут возвращены для записей кэша, подвергается активному обработчику хранения. Обработчик хранения свободен возвратить любые данные. Обработчику хранения рекомендуют возвратить, по крайней мере, данные, обеспеченные обработчиком значения по умолчанию, если технически возможный.
Контекст информации является процессом PHP. В зависимости от модели развертывания PHP процесс может служить одному или более веб-запросам.
Значения агрегированы для всех действий кэша на на основание обработчика хранения. Не возможно сказать
сколько запросов, происходящих из mysqli, PDO_MySQL или mysqlВызовы.API способствовали
значениям агрегированных данных. Использовать mysqlnd_qc_get_core_stats агрегировать данные синхронизации для всех
обработчиков хранения.
Массив информации о кэше
handler строка
Активный обработчик хранения.
Весь обработчик хранения. С тех пор 1.0.0.
handler_version строка Версия активного обработчика хранения.
Весь обработчик хранения. С тех пор 1.0.0.
num_entries интервал Число записей кэша. Значение зависит от обработчика хранения в использовании.
Значение по умолчанию, APC и обработчик хранения SQLite обеспечивают фактическое число записей кэша.
Обработчик хранения MEMCACHE всегда возвращается 0. MEMCACHE не
поддерживает подсчет числа записей кэша.
Если определяемый пользователем обработчик используется, число записей data
о свойстве сообщают.
С тех пор 1.0.0.
data массив
Версия активного обработчика хранения.
Дополнительный обработчик хранения зависимые данные на записях кэша. Обработчик хранения требуют предоставить подобную и сопоставимую информацию. Определяемый пользователем обработчик хранения свободен возвратить любые данные.
С тех пор 1.0.0.
Следующая информация предоставляется обработчиком хранения значения по умолчанию для data свойство.
data свойство содержит хеш. Хеш индексируется внутренним
идентификатором записи кэша обработчика хранения. Идентификатор записи кэша удобочитаем и
содержит строку запроса, приводящую к записи кэша. Пожалуйста, см. также пример ниже. Следующие
данные даются для каждой записи кэша.
statistics массив Статистика записи кэша.
С тех пор 1.0.0.
| Свойство | Описание | Версия |
|---|---|---|
rows |
Число строк кэшируемого набора результатов. | С тех пор 1.0.0. |
stored_size |
Размер кэшируемого набора результатов в байтах. Это - размер полезной нагрузки. Значение не подходит для того, чтобы вычислить потребление общей памяти всех записей кэша включая административные издержки записей кэша. | С тех пор 1.0.0. |
cache_hits |
Как часто кэшируемая запись была возвращена. | С тех пор 1.0.0. |
run_time |
Время выполнения оператора, которому принадлежит запись кэша. Это -
время выполнения некэшируемого оператора. Это - время между отправкой
оператора к MySQL, получающему ответ от MySQL. Время выполнения,
сохраненное при использовании плагина кэша запроса, может быть вычислено
как это: cache_hits * ((run_time - avg_run_time) +
(store_time - avg_store_time)).
|
С тех пор 1.0.0. |
store_time |
Время хранилища набора результатов операторов, которому принадлежит запись кэша. Это - время, которое потребовалось, чтобы выбрать и сохранить результаты некэшируемого оператора. | С тех пор 1.0.0. |
min_run_time |
Минимальное время выполнения кэшируемого оператора. Сколько времени это взяло, чтобы найти оператор в кэше. | С тех пор 1.0.0. |
min_store_time |
Минимальное время хранилища кэшируемого оператора. Время, потраченное для того, чтобы выбрать кэшируемый набор результатов от storagemedium и декодирования | С тех пор 1.0.0. |
avg_run_time |
Среднее время выполнения кэшируемого оператора. | С тех пор 1.0.0. |
avg_store_time |
Среднее время хранилища кэшируемого оператора. | С тех пор 1.0.0. |
max_run_time |
Среднее время выполнения кэшируемого оператора. | С тех пор 1.0.0. |
max_store_time |
Среднее время хранилища кэшируемого оператора. | С тех пор 1.0.0. |
valid_until |
Метка времени, когда запись кэша истекает. | С тех пор 1.1.0. |
metadata массив
Метаданные записи кэша. Это - метаданные, обеспеченные MySQL вместе с набором результатов рассматриваемого оператора. Различные версии сервера MySQL могут возвратить различные метаданные. В отличие от этого с некоторыми из расширений MySQL PHP никакая попытка не предпринимается, чтобы скрыть зависимости от версии сервера MySQL и детали версии от вызывающей стороны. Пожалуйста, сошлитесь на документацию API MySQL C, которая принадлежит серверу MySQL в использовании для получения дальнейшей информации.
Список метаданных содержит одну запись для каждого столбца.
С тех пор 1.0.0.
| Свойство | Описание | Версия |
|---|---|---|
name |
Имя поля. В зависимости от версии MySQL это может быть полевым именем псевдонима. | С тех пор 1.0.0. |
org_name |
Имя поля. | С тех пор 1.0.0. |
table |
Имя таблицы. Если имя псевдонима использовалось для таблицы, это обычно содержит имя псевдонима. | С тех пор 1.0.0. |
org_table |
Имя таблицы. | С тех пор 1.0.0. |
db |
Имя базы данных/схемы. | С тех пор 1.0.0. |
max_length |
Максимальный width поля. Детали могут измениться версией сервера MySQL. | С тех пор 1.0.0. |
length |
width поля. Детали могут измениться версией сервера MySQL. | С тех пор 1.0.0. |
type |
Тип данных поля. Детали могут измениться сервером MySQL по
использованию. Это - значение констант типа API MySQL C. Рекомендуется
использовать константы типа, обеспеченные mysqli расширение, чтобы протестировать
на его значение. Недопустимо протестировать на bycomparing значений
определенного типа с определенными числами.
|
С тех пор 1.0.0. |
Обработчик хранения APC возвращает ту же самую информацию для data
свойство, но нет metadata. metadata из
кэша запись устанавливается в NULL.
Обработчик хранения MEMCACHE не заполняется data свойство.
Статистические данные не доступны на на основание записи кэша с обработчиком хранения MEMCACHE.
Определяемый пользователем обработчик хранения свободен обеспечить любые данные.
Примеры
Пример 22.325. mysqlnd_qc_get_cache_infoпример
Пример показывает вывод от встроенного обработчика хранения значения по умолчанию. Другой обработчик хранения может сообщить о различных данных.
<?php/* Populate the cache, e.g. using mysqli */$mysqli = new mysqli("host", "user", "password", "schema");$mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test");/* Display cache information */var_dump(mysqlnd_qc_get_cache_info());?>
Вышеупомянутые примеры выведут:
array(4) { ["num_entries"]=> int(1) ["handler"]=> string(7) "default" ["handler_version"]=> string(5) "1.0.0" ["data"]=> array(1) { ["Localhost via UNIX socket 3306 user schema|/*qc=on*/SELECT id FROM test"]=> array(2) { ["statistics"]=> array(11) { ["rows"]=> int(6) ["stored_size"]=> int(101) ["cache_hits"]=> int(0) ["run_time"]=> int(471) ["store_time"]=> int(27) ["min_run_time"]=> int(0) ["max_run_time"]=> int(0) ["min_store_time"]=> int(0) ["max_store_time"]=> int(0) ["avg_run_time"]=> int(0) ["avg_store_time"]=> int(0) } ["metadata"]=> array(1) { [0]=> array(8) { ["name"]=> string(2) "id" ["orig_name"]=> string(2) "id" ["table"]=> string(4) "test" ["orig_table"]=> string(4) "test" ["db"]=> string(4) "schema" ["max_length"]=> int(1) ["length"]=> int(11) ["type"]=> int(3) } } } }}
См. Также
mysqlnd_qc_get_core_stats |
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_get_core_stats
Статистика собралась ядром кэша запроса
Описание
array mysqlnd_qc_get_core_stats();
Возвращает подбор статистических данных, собранный ядром плагина кэша. О тех же самых полях данных сообщат для любого обработчика хранения, потому что данные собираются ядром.
PHP параметр конфигурации mysqlnd_qc.collect_statistics управляет набором статистики. Набор статистики
отключается по умолчанию по причинам производительности. Отключение набора статистики также отключит набор
времени связанная статистика.
PHP параметр конфигурации mysqlnd_qc.collect_time_statistics
управляет набором времени связанная статистика.
Контекст базовой статистики PHP процесс. В зависимости от Вашей модели a
развертывания PHP процесс может обработать один или многократные запросы.
Статистические данные агрегированы для всех записей кэша и всего обработчика хранения. Не возможно сказать
сколько запросов, происходящих из mysqli, PDO_MySQL или mysql Вызовы API способствовали
значениям агрегированных данных.
Параметры
У этой функции нет никаких параметров.
Возвращаемые значения
Массив базовой статистики
| Статистическая величина | Описание | Версия |
|---|---|---|
cache_hit |
Оператор считают кэшируемым, и кэшированные данные были снова использованы. Оператор считают кэшируемым, и неудачное обращение в кэш произошло, но оператор кэшировался кем-то еще, в то время как мы обрабатываем это, и таким образом мы можем выбрать следствие обновленного кэша. | С тех пор 1.0.0. |
cache_miss |
Оператор считают кэшируемым...
|
С тех пор 1.0.0. |
cache_put |
Оператор считают кэшируемым и был добавлен к кэшу. Заботьтесь, вычисляя полученную статистику.
Обработчик хранения со временем жизни хранения вне контекста процесса может сообщить cache_put = 0 вместе с cache_hit >
0, если другой процесс заполнил кэш. Можно хотеть использовать num_entries
от mysqlnd_qc_get_cache_info
если обработчик поддерживает это ( default, APC).
|
С тех пор 1.0.0. |
query_should_cache |
Оператор считают кэшируемым основанный на строковом анализе запроса. Оператор может или не может
быть добавлен к кэшу. См. также cache_put.
|
С тех пор 1.0.0. |
query_should_not_cache |
Оператор считают не кэшируемым основанный на строковом анализе запроса. | С тех пор 1.0.0. |
query_not_cached |
Оператор считают не кэшируемым, или это считают cachable, но обработчик хранения не возвратил ключ хеша для этого. | С тех пор 1.0.0. |
query_could_cache |
Оператор считают кэшируемым...
|
С тех пор 1.0.0. |
query_found_in_cache |
Оператор считают кэшируемым, и мы нашли это в кэше, но мы еще не воспроизвели кэшированные данные, и мы не имеем, отправляют набор результатов клиенту все же. Это не считают удачным обращением в кэш, потому что клиент не мог бы выбрать результат, или кэшированные данные могут быть дефектными. | С тех пор 1.0.0. |
query_uncached_other |
Оператор считают кэшируемым, и он может или уже, возможно, не находится в кэше, но или воспроизводящий кэшированные данные перестал работать, никакой набор результатов не доступен или некоторая другая ошибка, произошел. | |
query_uncached_no_table |
Оператор не кэшировался, потому что у набора результатов есть по крайней мере один столбец, у
которого нет никакого имени таблицы в его метаданных. Пример такого запроса SELECT SLEEP(1). Чтобы кэшировать те операторы, необходимо
изменить значение по умолчанию конфигурационной директивы PHP mysqlnd_qc.cache_no_table
и набор mysqlnd_qc.cache_no_table = 1. Часто, это не требуется,
чтобы кэшировать такие операторы.
|
С тех пор 1.0.0. |
query_uncached_use_result |
Оператор кэшировался бы, если бы буферизованный набор результатов использовался. Ситуацию также
рассматривают как неудачное обращение в кэш и cache_miss будет
постепенно увеличен также.
|
С тех пор 1.0.0. |
query_aggr_run_time_cache_hit |
Агрегированное время выполнения (мс) всех кэшируемых запросов. Кэшируемые запросы - те, которые
постепенно увеличились cache_hit.
|
С тех пор 1.0.0. |
query_aggr_run_time_cache_put |
Агрегированное время выполнения (мс) всех некэшируемых запросов, которые были помещены в кэш.
См. также cache_put.
|
С тех пор 1.0.0. |
query_aggr_run_time_total |
Агрегированное время выполнения (мс) всех некэшируемых и кэшируемых запросов, которые были осмотрены и выполнены кэшем запроса. | С тех пор 1.0.0. |
query_aggr_store_time_cache_hit |
Агрегированное время хранилища (мс) всех кэшируемых запросов. Кэшируемые запросы - те, которые
постепенно увеличились cache_hit.
|
С тех пор 1.0.0. |
query_aggr_store_time_cache_put |
Агрегированное время хранилища ( ms) из всех некэшируемых запросов,
которые были помещены в кэш. См. также cache_put.
|
С тех пор 1.0.0. |
query_aggr_store_time_total |
Агрегированное время хранилища (мс) всех некэшируемых и кэшируемых запросов, которые были осмотрены и выполнены кэшем запроса. | С тех пор 1.0.0. |
receive_bytes_recorded |
Записанный входящий сетевой трафик ( bytes) передайтесь от MySQL до
PHP. Трафик может или не мог быть добавлен к кэшу. Трафик является общим количеством для всех
запросов независимо если кэширующийся или нет.
|
С тех пор 1.0.0. |
receive_bytes_replayed |
Сетевой трафик воспроизводится во время кэша. Это - общая сумма входящего трафика, сохраненного из-за использования плагина кэша запроса. | С тех пор 1.0.0. |
send_bytes_recorded |
Записанный исходящий сетевой трафик ( bytes) передайтесь от MySQL
до PHP. Трафик может или не мог быть добавлен к кэшу. Трафик является общим количеством для всех
запросов независимо если кэширующийся или нет.
|
С тех пор 1.0.0. |
send_bytes_replayed |
Сетевой трафик воспроизводится во время кэша. Это - общая сумма исходящего трафика, сохраненного из-за использования плагина кэша запроса. | С тех пор 1.0.0. |
slam_stale_refresh |
Число неудачных обращений в кэш, которые инициировали служащие устаревшие данные, пока клиент, вызывающий неудачное обращение в кэш, не обновил cacheentry. | С тех пор 1.0.0. |
slam_stale_hit |
Число удачных обращений в кэш, в то время как устарелая запись кэша обновляется. | С тех пор 1.0.0. |
Примеры
Пример 22.326. mysqlnd_qc_get_core_statsпример
<?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)}
См. Также
| Конфигурация времени выполнения |
| mysqlnd_qc.collect_statistics |
| mysqlnd_qc.time_statistics |
mysqlnd_qc_get_cache_info |
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_get_normalized_query_trace_log
Возвращает нормализованный журнал трассировки запроса для каждого запроса, осмотренного кэшем запроса
Описание
array mysqlnd_qc_get_normalized_query_trace_log();
Возвращает нормализованный журнал трассировки запроса для каждого запроса, осмотренного кэшем запроса. Набор
журнала трассировки отключается по умолчанию. Чтобы собрать журнал трассировки, необходимо установить
конфигурационную директиву PHP mysqlnd_qc.collect_normalized_query_trace к
1
Записи в журнале трассировки группируются нормализованным оператором запроса. Нормализованный оператор
запроса является оператором запроса со всеми значениями параметра оператора, заменяемыми вопросительным
знаком. Например, эти два оператора SELECT id FROM test WHERE id = 1 и SELECT id FROM test WHERE id = 2 нормализуются как SELECT
id FROM test WHERE id = ?. Всякий раз, когда оператор осматривается кэшем запроса, который
соответствует нормализованный образец оператора, его статистические данные группируются нормализованной
строкой оператора.
Параметры
У этой функции нет никаких параметров.
Возвращаемые значения
Массив журнала запросов. Каждая запись списка содержит нормализованный запрос stringand дальнейшая подробная информация.
| Ключ | Описание |
|---|---|
query |
Нормализованная строка оператора. |
occurences |
Сколько операторы соответствовали нормализованной строке оператора в дополнение к тому, который создал запись журнала. Значение является нулем, если оператор был нормализован, его нормализованное представление было добавлено к журналу, но ни у каких дальнейших запросов, осмотренных PECL/mysqlnd_qc, нет той же самой нормализованной строки оператора. |
eligible_for_caching |
Мог ли бы оператор кэшироваться. Оператор, имеющий право на кэширование, не обязательно кэшировался. Это не возможный сказать наверняка, если или сколько кэшируемый оператор внес агрегированной нормализованной записи журнала оператора. Однако, сравнивая минимальное и среднее время выполнения можно высказать образованное предположение. |
avg_run_time |
Среднее время выполнения всех запросов, способствующих записи журнала запросов. Время выполнения является временем между отправкой оператора запроса к MySQL и получением ответа от MySQL. |
avg_store_time |
Среднее время хранилища всех запросов, способствующих записи журнала запросов. Время хранилища является временем, должен был выбрать набор результатов операторов от сервера до клиента и, храня это на клиенте. |
min_run_time |
Минимальное время выполнения всех запросов, способствующих записи журнала запросов. |
min_store_time |
Минимальное время хранилища всех запросов, способствующих записи журнала запросов. |
max_run_time |
Максимальное время выполнения всех запросов, способствующих записи журнала запросов. |
max_store_time |
Максимальное время хранилища всех запросов, способствующих запросу logentry. |
Примеры
Пример 22.327. mysqlnd_qc_get_normalized_query_trace_logпример
mysqlnd_qc.collect_normalized_query_trace=1
<?php/* 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)");/* not cached */$res = $mysqli->query("SELECT id FROM test WHERE id = 1");var_dump($res->fetch_assoc());$res->free();/* cache put */$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");var_dump($res->fetch_assoc());$res->free();/* cache hit */$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");var_dump($res->fetch_assoc());$res->free();var_dump(mysqlnd_qc_get_normalized_query_trace_log());?>
Вышеупомянутые примеры выведут:
array(1) { ["id"]=> string(1) "1"}array(1) { ["id"]=> string(1) "2"}array(1) { ["id"]=> string(1) "2"}array(4) { [0]=> array(9) { ["query"]=> string(25) "DROP TABLE IF EXISTS test" ["occurences"]=> int(0) ["eligible_for_caching"]=> bool(false) ["avg_run_time"]=> int(0) ["min_run_time"]=> int(0) ["max_run_time"]=> int(0) ["avg_store_time"]=> int(0) ["min_store_time"]=> int(0) ["max_store_time"]=> int(0) } [1]=> array(9) { ["query"]=> string(27) "CREATE TABLE test (id INT )" ["occurences"]=> int(0) ["eligible_for_caching"]=> bool(false) ["avg_run_time"]=> int(0) ["min_run_time"]=> int(0) ["max_run_time"]=> int(0) ["avg_store_time"]=> int(0) ["min_store_time"]=> int(0) ["max_store_time"]=> int(0) } [2]=> array(9) { ["query"]=> string(40) "INSERT INTO test (id ) VALUES (? ), (? )" ["occurences"]=> int(0) ["eligible_for_caching"]=> bool(false) ["avg_run_time"]=> int(0) ["min_run_time"]=> int(0) ["max_run_time"]=> int(0) ["avg_store_time"]=> int(0) ["min_store_time"]=> int(0) ["max_store_time"]=> int(0) } [3]=> array(9) { ["query"]=> string(31) "SELECT id FROM test WHERE id =?" ["occurences"]=> int(2) ["eligible_for_caching"]=> bool(true) ["avg_run_time"]=> int(159) ["min_run_time"]=> int(12) ["max_run_time"]=> int(307) ["avg_store_time"]=> int(10) ["min_store_time"]=> int(8) ["max_store_time"]=> int(13) }}
См. Также
| Конфигурация времени выполнения |
| mysqlnd_qc.collect_normalized_query_trace |
| mysqlnd_qc.time_statistics |
mysqlnd_qc_get_query_trace_log
|
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_get_query_trace_log
Возвращает след для каждого запроса, осмотренного кэшем запроса
Описание
array mysqlnd_qc_get_query_trace_log();
Возвращает след для каждого запроса, осмотренного кэшем запроса. Набор следа отключается по умолчанию. Чтобы
собрать след, необходимо установить конфигурационную директиву PHP mysqlnd_qc.collect_query_trace
к 1
Максимальная глубина следа ограничивается набором глубины с конфигурационной директивой PHP mysqlnd_qc.query_trace_bt_depth.
Параметры
У этой функции нет никаких параметров.
Возвращаемые значения
Массив следа запроса. Каждая запись списка содержит строку запроса, след и дальнейшую подробную информацию.
| Ключ | Описание |
|---|---|
query |
Строка запроса. |
origin |
След кода. |
run_time |
Запросите время выполнения в миллисекундах. Набор всех случаев и необходимого gettimeofday системные вызовы могут быть отключены, устанавливая
конфигурационную директиву PHP mysqlnd_qc.time_statistics к 0 |
store_time |
Запросите время хранилища набора результатов в миллисекундах. Набор всех случаев и необходимого
gettimeofday системные вызовы могут быть отключены, устанавливая
конфигурационную директиву PHP mysqlnd_qc.time_statistics к 0 |
eligible_for_caching |
TRUE если запрос является кэшируемым иначе FALSE
.
|
no_table |
TRUE если запрос генерировал набор результатов, и по крайней мере
у одного столбца от набора результатов нет никакого набора имени таблицы в его метаданных. Это
обычно имеет место с запросами, какой, вероятно, не хотят кэшировать такой как SELECT SLEEP(1). По умолчанию любой такой запрос не будет
добавлен к кэшу. См. также конфигурационную директиву PHP mysqlnd_qc.cache_no_table.
|
was_added |
TRUE если результат запроса был помещен в кэш, иначе FALSE .
|
was_already_in_cache |
TRUE если результат запроса был бы добавлен к кэшу, если это уже
не было в кэше (удачное обращение в кэш). Иначе FALSE.
|
Примеры
Пример 22.328. mysqlnd_qc_get_query_trace_logпример
mysqlnd_qc.collect_query_trace=1
<?php/* 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)");/* not cached */$res = $mysqli->query("SELECT id FROM test WHERE id = 1");var_dump($res->fetch_assoc());$res->free();/* cache put */$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");var_dump($res->fetch_assoc());$res->free();/* cache hit */$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");var_dump($res->fetch_assoc());$res->free();var_dump(mysqlnd_qc_get_query_trace_log());?>
Вышеупомянутые примеры выведут:
array(1) { ["id"]=> string(1) "1"}array(1) { ["id"]=> string(1) "2"}array(1) { ["id"]=> string(1) "2"}array(6) { [0]=> array(8) { ["query"]=> string(25) "DROP TABLE IF EXISTS test" ["origin"]=> string(102) "#0 qc.php(4): mysqli->query('DROP TABLE IF E...')#1 {main}" ["run_time"]=> int(0) ["store_time"]=> int(0) ["eligible_for_caching"]=> bool(false) ["no_table"]=> bool(false) ["was_added"]=> bool(false) ["was_already_in_cache"]=> bool(false) } [1]=> array(8) { ["query"]=> string(25) "CREATE TABLE test(id INT)" ["origin"]=> string(102) "#0 qc.php(5): mysqli->query('CREATE TABLE te...')#1 {main}" ["run_time"]=> int(0) ["store_time"]=> int(0) ["eligible_for_caching"]=> bool(false) ["no_table"]=> bool(false) ["was_added"]=> bool(false) ["was_already_in_cache"]=> bool(false) } [2]=> array(8) { ["query"]=> string(36) "INSERT INTO test(id) VALUES (1), (2)" ["origin"]=> string(102) "#0 qc.php(6): mysqli->query('INSERT INTO tes...')#1 {main}" ["run_time"]=> int(0) ["store_time"]=> int(0) ["eligible_for_caching"]=> bool(false) ["no_table"]=> bool(false) ["was_added"]=> bool(false) ["was_already_in_cache"]=> bool(false) } [3]=> array(8) { ["query"]=> string(32) "SELECT id FROM test WHERE id = 1" ["origin"]=> string(102) "#0 qc.php(9): mysqli->query('SELECT id FROM ...')#1 {main}" ["run_time"]=> int(0) ["store_time"]=> int(25) ["eligible_for_caching"]=> bool(false) ["no_table"]=> bool(false) ["was_added"]=> bool(false) ["was_already_in_cache"]=> bool(false) } [4]=> array(8) { ["query"]=> string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2" ["origin"]=> string(103) "#0 qc.php(14): mysqli->query('/*qc=on*/SELECT...')#1 {main}" ["run_time"]=> int(311) ["store_time"]=> int(13) ["eligible_for_caching"]=> bool(true) ["no_table"]=> bool(false) ["was_added"]=> bool(true) ["was_already_in_cache"]=> bool(false) } [5]=> array(8) { ["query"]=> string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2" ["origin"]=> string(103) "#0 qc.php(19): mysqli->query('/*qc=on*/SELECT...')#1 {main}" ["run_time"]=> int(13) ["store_time"]=> int(8) ["eligible_for_caching"]=> bool(true) ["no_table"]=> bool(false) ["was_added"]=> bool(false) ["was_already_in_cache"]=> bool(true) }}
См. Также
| Конфигурация времени выполнения |
| mysqlnd_qc.collect_query_trace |
| mysqlnd_qc.query_trace_bt_depth |
| mysqlnd_qc.time_statistics |
| mysqlnd_qc.cache_no_table |
mysqlnd_qc_get_normalized_query_trace_log
|
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_set_cache_condition
Установленные условия для автоматического кэширования
Описание
bool mysqlnd_qc_set_cache_condition(int condition_type,
mixed condition,
mixed condition_option);
Устанавливает условие для автоматического кэширования операторов, которые не содержат необходимые подсказки SQL, чтобы позволить кэшироваться их.
Параметры
condition_type Тип условия. Единственное позволенное значение MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
.
condition
Параметр для набора условия с condition_type. Тип параметра и
структура зависят от condition_type
Если condition_type равняется MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
condition должна быть строка. Строка устанавливает образец.
Операторы кэшируются, если таблица и запись метаданных базы данных их наборов результатов
соответствуют образец. Образец проверяется на соответствие с db и
org_table записи метаданных, обеспеченные базовым MySQL
клиент-серверная библиотека. Пожалуйста, проверьте MySQL Reference manual на детали об этих двух
записях. db и org_table значения
связываются с точкой (.) прежде, чем соответствующий против condition. Сопоставление с образцом поддерживает подстановочные
знаки % и _. Подстановочный знак % будет соответствовать один или много произвольных символов.
_ будет соответствовать один произвольный символ. Символ escape
является наклонной чертой влево.
condition_option Опция для condition. Введите и структура зависят от condition_type.
Если condition_type равняется MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
condition_options TTL, который будет использоваться.
Примеры
Пример 22.329. mysqlnd_qc_set_cache_conditionпример
<?php/* Cache all accesses to tables with the name "new%" in schema/database "db_example" for 1 second */if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) { die("Failed to set cache condition!");}$mysqli = new mysqli("host", "user", "password", "db_example", "port");/* cached although no SQL hint given */$mysqli->query("SELECT id, title FROM news");$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");/* not cached: no SQL hint, no pattern match */$pdo_mysql->query("SELECT id, title FROM latest_news");/* cached: TTL 1 second, pattern match */$pdo_mysql->query("SELECT id, title FROM news");?>
Возвращаемые значения
Возвращает TRUE на успехе или ЛОЖЬ при ОТКАЗЕ.
См. Также
| Быстрый запуск: образец базировал кэширование |
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_set_is_select
Устанавливает обратный вызов, который решает, кэшируется ли оператор
Описание
mixed mysqlnd_qc_set_is_select(string callback);
Устанавливает обратный вызов, который решает, кэшируется ли оператор.
Есть несколько способов подсказать PELC/mysqlnd_qc, чтобы кэшировать запрос. По умолчанию PECL/mysqlnd_qc
пытается кэшироваться, если кэширование всех операторов включается, или строка запроса начинается с
определенной подсказки SQL. Плагин внутренне вызывает названную функцию is_select() узнать. Эта внутренняя функция может быть заменена определяемым
пользователем обратным вызовом. Затем, определяемый пользователем обратный вызов ответственен, чтобы решить,
пытается ли плагин кэшировать оператор. Поскольку внутренняя функция заменяется обратным вызовом, обратный
вызов получает полный контроль. Обратный вызов свободен проигнорировать параметр конфигурации mysqlnd_qc.cache_by_default и подсказки SQL.
Обратный вызов вызывается для каждого оператора, осмотренного плагином. Этому дают строку операторов в
качестве параметра. Возвраты обратного вызова FALSE если оператор не должен
кэшироваться. Это возвращается TRUE предпринять сменную попытку кэшировать
набор результатов операторов, если любой. Так - создаваемой записи кэша дают набор TTL значения по умолчанию
с конфигурационной директивой PHP mysqlnd_qc.ttl. Если различный TTL должен
использоваться, обратный вызов возвращает числовое значение, которое будет использоваться в качестве TTL.
Внутреннее is_select функция является частью внутреннего интерфейса обработчика
хранения кэша. Таким образом определяемый пользователем обработчик хранения предлагает те же самые
возможности.
Параметры
У этой функции нет никаких параметров.
Возвращаемые значения
Возвраты TRUE на успехе или FALSE при отказе.
Примеры
Пример 22.330. mysqlnd_qc_set_is_selectпример
<?php/* callback which decides if query is cached */function is_select($query) { static $patterns = array( /* true - use default from mysqlnd_qc.ttl */ "@SELECT\s+.*\s+FROM\s+test@ismU" => true, /* 3 - use TTL = 3 seconds */ "@SELECT\s+.*\s+FROM\s+news@ismU" => 3 ); /* check if query does match pattern */ foreach ($patterns as $pattern => $ttl) { if (preg_match($pattern, $query)) { printf("is_select(%45s): cache\n", $query); return $ttl; } } printf("is_select(%45s): do not cache\n", $query); return false;}mysqlnd_qc_set_is_select("is_select");/* Connect, create and populate test table */$mysqli = new mysqli("host", "user", "password", "schema");$mysqli->query("DROP TABLE IF EXISTS test");$mysqli->query("CREATE TABLE test(id INT)");$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");/* cache put */$mysqli->query("SELECT id FROM test WHERE id = 1");/* cache hit */$mysqli->query("SELECT id FROM test WHERE id = 1");/* cache put */$mysqli->query("SELECT * FROM test");?>
Вышеупомянутые примеры выведут:
is_select( DROP TABLE IF EXISTS test): do not cacheis_select( CREATE TABLE test(id INT)): do not cacheis_select( INSERT INTO test(id) VALUES (1), (2), (3)): do not cacheis_select( SELECT id FROM test WHERE id = 1): cacheis_select( SELECT id FROM test WHERE id = 1): cacheis_select( SELECT * FROM test): cache
См. Также
| Конфигурация времени выполнения |
| mysqlnd_qc.ttl |
| mysqlnd_qc.cache_by_default |
mysqlnd_qc_set_user_handlers
|
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_set_storage_handler
Измените текущий обработчик хранения
Описание
bool mysqlnd_qc_set_storage_handler(string handler);
Устанавливает обработчик хранения, используемый кэшем запроса. Список доступного обработчика хранения может
быть получен из mysqlnd_qc_get_available_handlers.
То, какое хранение доступны, зависит от конфигурации времени компиляции плагина кэша запроса. default обработчик хранения всегда доступен. Весь другой обработчик хранения
должен быть включен явно, создавая расширение.
Параметры
handler Обработчик может иметь строку типа, представляющую имя встроенного обработчика хранения или
объект типа mysqlnd_qc_handler_default. Имена встроенного обработчика
хранения default, APC, MEMCACHE, sqlite.
Возвращаемые значения
Возвраты TRUE на успехе или FALSE при отказе.
Если изменение обработчика хранения перестало работать будет брошена, catchable фатальная ошибка. Кэш запроса не может работать, если предыдущий обработчик хранения был завершением работы, но никакой новый обработчик хранения не был установлен.
Примеры
Пример 22.331. mysqlnd_qc_set_storage_handlerпример
Пример показывает вывод от встроенного обработчика хранения значения по умолчанию. Другой обработчик хранения может сообщить о различных данных.
<?phpvar_dump(mysqlnd_qc_set_storage_handler("memcache"));if (true === mysqlnd_qc_set_storage_handler("default")) printf("Default storage handler activated");/* Catchable fatal error */var_dump(mysqlnd_qc_set_storage_handler("unknown"));?>
Вышеупомянутые примеры выведут:
bool(true)Default storage handler activatedCatchable fatal error: mysqlnd_qc_set_storage_handler(): Unknown handler 'unknown' in (file) on line (line)
См. Также
| Установка |
mysqlnd_qc_get_available_handlers
|
Copyright 1997-2012 PHP Documentation Group.
mysqlnd_qc_set_user_handlers
Устанавливает функции обратного вызова для определяемого пользователем процедурного обработчика хранения
Описание
bool mysqlnd_qc_set_user_handlers(string get_hash,
string find_query_in_cache,
string return_to_cache,
string add_query_to_cache_if_not_exists,
string query_is_select,
string update_query_run_time_stats,
string get_stats,
string clear_cache);
Устанавливает функции обратного вызова для определяемого пользователем процедурного обработчика хранения.
Параметры
get_hash
Имя функции пользователя, реализовывая обработчик хранения get_hash
функциональность.
find_query_in_cache
Имя функции пользователя, реализовывая обработчик хранения find_in_cache функциональность.
return_to_cache Имя функции пользователя, реализовывая обработчик хранения return_to_cache функциональность.
add_query_to_cache_if_not_exists Имя функции пользователя, реализовывая обработчик хранения add_query_to_cache_if_not_exists
функциональность.
query_is_select Имя функции пользователя, реализовывая обработчик хранения query_is_select функциональность.
update_query_run_time_stats
Имя функции пользователя, реализовывая обработчик хранения update_query_run_time_stats
функциональность.
get_stats
Имя функции пользователя, реализовывая обработчик хранения get_stats функциональность.
clear_cache
Имя функции пользователя, реализовывая обработчик хранения clear_cache функциональность.
Возвращаемые значения
Возвращает TRUE на успехе или ЛОЖЬ при ОТКАЗЕ.
См. Также
| Процедурный определяемый пользователем пример обработчика хранения |