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

22.9.7.6. Предопределенные Константы

Copyright 1997-2012 PHP Documentation Group.

Константы ниже определяются этим расширением, andwill только быть доступными, когда у расширения есть eitherbeen, скомпилированный в PHP или динамически загруженный во времени выполнения.

Подсказка SQL имела отношение

Пример 22.322. Используя константы подсказки SQL

Кэшем запроса управляют подсказки SQL. Подсказки SQL используются, чтобы включить и отключить кэширование. Подсказки SQL могут использоваться, чтобы установить TTL из запроса.

Подсказки SQL, распознанные кэшем запроса, могут быть вручную изменены во время компиляции. Это позволяет использовать mysqlnd_qc в средах, в которых подсказки SQL значения по умолчанию уже берутся и интерпретируются другими системами. Поэтому рекомендуется использовать строковые константы подсказки SQL вместо того, чтобы вручную добавить, что SQL значения по умолчанию подсказывает строке запроса.

<?php/* Use constants for maximum portability */$query = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test";/* Valid but less portable: default TTL */$query = "/*qc=on*/SELECT id FROM test";/* Valid but less portable: per statement TTL */$query = "/*qc=on*//*qc_ttl=5*/SELECT id FROM test";printf("MYSQLND_QC_ENABLE_SWITCH: %s\n", MYSQLND_QC_ENABLE_SWITCH);printf("MYSQLND_QC_DISABLE_SWITCH: %s\n", MYSQLND_QC_DISABLE_SWITCH);printf("MYSQLND_QC_TTL_SWITCH: %s\n", MYSQLND_QC_TTL_SWITCH);?>   

Вышеупомянутые примеры выведут:

MYSQLND_QC_ENABLE_SWITCH: qc=onMYSQLND_QC_DISABLE_SWITCH: qc=offMYSQLND_QC_TTL_SWITCH: qc_ttl=

MYSQLND_QC_ENABLE_SWITCH (строка)
Подсказка SQL, используемая, чтобы позволить кэшироваться запроса.
MYSQLND_QC_DISABLE_SWITCH (строка)
Подсказка SQL, используемая, чтобы отключить кэширование запроса, если mysqlnd_qc.cache_by_default = 1.
MYSQLND_QC_TTL_SWITCH (строка)
Подсказка SQL, используемая, чтобы установить TTL набора результатов.
MYSQLND_QC_SERVER_ID_SWITCH (строка)

Эта подсказка SQL не должна использоваться вообще.

Необходимо PECL/mysqlnd_ms сгруппировать записи кэша для одного оператора, но происходящий из различных физических соединений. Если подсказка является используемыми настройками подключения, такими как пользователь, имя узла и набор символов не рассматривают для того, чтобы генерировать ключ кэша запроса. Вместо этого данное значение и строка запроса привыкли как входной к хеш-функции, которая генерирует ключ.

PECL/mysqlnd_ms может, если проинструктировано, кэш следует из ведомых устройств MySQL Replication. Поскольку это может содержать много соединений с ведомым устройством, ключ кэша не должен быть сформирован от пользователя, имени узла или других настроек, которые могут измениться для различных ведомых соединений. Вместо этого PECL/mysqlnd_ms обеспечивает идентификатор, который обращается к группе ведомых соединений, которым нужно позволить совместно использовать записи кэша независимо от того, какое физическое ведомое соединение должно было генерировать запись кэша.

Использование этой функции за пределами PECL/mysqlnd_ms не рекомендуется.

mysqlnd_qc_set_cache_condition связанный

Пример 22.323. Пример mysqlnd_qc_set_cache_conditionиспользование

Функция mysqlnd_qc_set_cache_condition позволяет устанавливать условия для автоматического кэширования операторов, которые не начинаются с подсказок SQL, необходимых, чтобы вручную позволить кэшироваться.

<?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");?>

MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN (интервал)
Используемый в качестве параметра mysqlnd_qc_set_cache_condition устанавливать условия для схемы базируемое автоматическое кэширование.

Другой

Сменный номер версии может быть получен, используя также MYSQLND_QC_VERSION , который является строковым представлением числового номера версии, или MYSQLND_QC_VERSION_ID , который является целым числом такой как 10000. Разработчики могут вычислить номер версии следующим образом.

Версия (часть) Пример
Major*10000 1*10000 = 10000
Minor*100 0*100 = 0
Патч 0 = 0
MYSQLND_QC_VERSION_ID 10000

MYSQLND_QC_VERSION (строка)
Сменная строка версии, например, "с 1.0.0" прототипами.

MYSQLND_QC_VERSION_ID (интервал)
Сменный номер версии, например, 10000.