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

5.7.1.5. Зонды Кэша запроса

Зонды кэша запроса запускаются, выполняя любой запрос. query-cache-hit запрос инициирован, когда запрос существует в кэше запроса и может использоваться, чтобы возвратить информацию о кэше запроса. Параметры содержат исходный текст запроса и число строк, возвращенных из кэша запроса для запроса. Если запрос не в пределах кэша запроса, или кэш запроса не включается, то query-cache-miss зонд инициирован вместо этого.

query-cache-hit(query, rows)query-cache-miss(query)

Зонды кэша запроса лучше всего объединяются с зондом на основном запросе так, чтобы можно было определить различия во времена между использованием или не использованием кэша запроса для указанных запросов. Например, в следующем сценарии D, информация о кэше запроса и запроса объединяется в вывод информации во время контроля:

#!/usr/sbin/dtrace -s#pragma D option quietdtrace:::BEGIN{   printf("%-20s %-20s %-40s %2s %-9s\n", "Who", "Database", "Query", "QC", "Time(ms)");}mysql*:::query-start{   self->query = copyinstr(arg0);   self->connid = arg1;   self->db    = copyinstr(arg2);   self->who   = strjoin(copyinstr(arg3),strjoin("@",copyinstr(arg4)));   self->querystart = timestamp;   self->qc = 0;}mysql*:::query-cache-hit{   self->qc = 1;}mysql*:::query-cache-miss{   self->qc = 0;}mysql*:::query-done{   printf("%-20s %-20s %-40s %-2s %-9d\n",self->who,self->db,self->query,(self->qc ? "Y" : "N"),          (timestamp - self->querystart) / 1000000);}

Выполняя сценарий можно видеть эффекты кэша запроса. Первоначально кэш запроса отключается. Если Вы устанавливаете размер кэша запроса и затем выполняете запрос многократно, следует видеть, что кэш запроса используется, чтобы возвратить данные запроса:

shell> ./query-cache.droot@localhost       test                 select * from t1 order by i limit 10     N  1072root@localhost                            set global query_cache_size=262144       N  0root@localhost       test                 select * from t1 order by i limit 10     N  781root@localhost       test                 select * from t1 order by i limit 10     Y  0