|
Spec-Zone .ru
спецификации, руководства, описания, API
|
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 (строка)
MYSQLND_QC_DISABLE_SWITCH (строка)
mysqlnd_qc.cache_by_default
= 1.
MYSQLND_QC_TTL_SWITCH (строка)
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 |